At-Least-Once Delivery significa que uma mensagem será entregue uma ou mais vezes.
O sistema tenta garantir que a mensagem não seja perdida, aceitando a possibilidade de duplicidade.
At-Least-Once Delivery aparece quando sistemas precisam conversar sem ficarem grudados um no outro. Mensageria serve para desacoplar, absorver picos e lidar melhor com falhas.
Ao estudar, pense sempre em produtor, consumidor, mensagem, retry e DLQ.
O que é
At-Least-Once Delivery deve ser entendido como comunicação indireta entre partes de uma aplicação. Em vez de um componente depender da resposta imediata de outro, mensagens permitem desacoplar envio, espera, processamento e falha.
Mensageria desacopla produtores e consumidores.
Por que existe
At-Least-Once Delivery existe para desacoplar partes de uma aplicação, absorver variação de carga e permitir comunicação assíncrona ou orientada a eventos. Sem mensageria, componentes ficam mais dependentes do tempo de resposta uns dos outros.
Como funciona
Consequência
Consumidores precisam ser idempotentes.
Isso significa que processar a mesma mensagem duas vezes não deve corromper o sistema.
Exemplo prático
Amazon SQS Standard Queues usam esse modelo.
Uma mensagem pode ser entregue para o consumidor, processada, mas por falha de confirmação, reaparecer na fila.
Uma API pode receber uma solicitação, publicar uma mensagem em Amazon SQS e responder rapidamente ao usuário. Workers processam a fila depois. Se falharem, mensagens podem ser repetidas ou enviadas para Dead Letter Queue (DLQ).
Em outro cenário, Amazon SNS distribui uma mensagem para vários consumidores, enquanto Amazon EventBridge roteia eventos por padrão.
Diferenças importantes
Trade-off
At-least-once favorece durabilidade e disponibilidade.
O custo é lidar com duplicidade.
Como Diferenciar
- SQS é fila.
- SNS é pub/sub.
- EventBridge é barramento de eventos.
- MQ é broker gerenciado.
- MSK é Kafka gerenciado.
- Kinesis é streaming.
Cuidados
Mensageria exige lidar com duplicidade, ordem, atraso, reprocessamento e observabilidade.
Não basta “colocar na fila”. O consumidor precisa ser idempotente, monitorado e preparado para falhas.
Mensageria exige idempotência, retries, DLQ e observabilidade.
Relação com outras notas
Relação com Idempotência
Idempotência é a técnica que torna at-least-once seguro.
Sem idempotência, duplicidade pode gerar cobranças duplicadas, e-mails repetidos ou estados incorretos.