Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Sincronizar emails de tópicos diferentes

Considere uma situação hipotética onde o fluxo de pedidos é muito alto e precisássemos separar o serviço de email em 2 tópicos, um seria para emails na criação do pedido (somente pedidos novos) e o outro seria para o ciclo de vida do pedido (pedido entregue, pedido pago, pedido em preparo...). Como garantir a ordem dos emails para os consumidores ? Como garantir que não será consumido o email de pedido entregue antes do email de pedido criado? Considere que por algum motivo os consumidores não conseguiram consumir o email de pedido criado.

1 resposta
solução!

Oi Tony, tudo bem?

Desculpe a demora em retornar.

Para garantir a ordem dos emails para os consumidores e evitar que o email de pedido entregue seja consumido antes do email de pedido criado, você pode utilizar um serviço intermediário de email. Esse serviço intermediário seria responsável por receber as mensagens dos tópicos de criação de pedidos e ciclo de vida dos pedidos, e então enviar os emails na ordem correta.

Nesse serviço intermediário, você pode implementar a lógica de garantir a ordem dos emails. Por exemplo, você pode armazenar as mensagens recebidas em uma fila ou em um banco de dados temporário, e processá-las na ordem em que foram recebidas. Dessa forma, mesmo que os consumidores não consigam consumir o email de pedido criado imediatamente, ele será processado e enviado na ordem correta.

Além disso, é importante garantir que o serviço intermediário seja escalável e resiliente, para lidar com o alto fluxo de pedidos. Você pode utilizar ferramentas como o Kafka para garantir a escalabilidade e a tolerância a falhas do serviço.

Um abraço e bons estudos.