Arquitetura Orientada a Serviços - AMQP ou HTTP
Um pouco de fundo.
Aplicação Django monolítica muito grande. Todos os componentes usam o mesmo banco de dados. Precisamos separar serviços para que possamos atualizar independentemente algumas partes do sistema sem afetar o resto.
Nós usamos RabbitMQ como um corretor para o aipo.
Agora temos duas opções:
Serviços HTTP usando uma interface REST.JSONRPC sobre AMQP para um serviço de loop de eventosMinha equipe está inclinada para o HTTP porque é com isso que eles estão familiarizados, mas acho que as vantagens de usar o RPC sobre o AMQP superam isso.
O AMQP nos fornece os recursos para adicionar facilmente balanceamento de carga e alta disponibilidade, com entregas de mensagens garantidas.
Considerando que, com o HTTP, temos que criar wrappers de HTTP do cliente para trabalhar com as interfaces REST, temos que colocar um balanceador de carga e configurar essa infraestrutura para ter HA etc.
Com AMQP eu posso apenas gerar outra instância do serviço, ele irá se conectar à mesma fila que as outras instâncias e bam, HA e balanceamento de carga.
Estou faltando alguma coisa com meus pensamentos sobre o AMQP?