At-Least-Once Delivery
Entrega Pelo Menos Uma Vez
A entrega pelo menos uma vez tenta evitar que uma mensagem seja perdida, mas a mesma mensagem pode chegar mais de uma vez. O consumidor deve lidar com repetições com segurança.
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeevt_784deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupeJOBOutro exemplo
Um worker salva o recibo `evt-42` mas para antes de excluir a mensagem da Amazon SQS. A SQS posteriormente entrega a mesma mensagem novamente. O próximo worker vê o ID do evento salvo e retorna o recibo existente em vez de criar um segundo.
Partes principais
- 01ID de mensagem estável
- 02Tentativa de entrega
- 03Resultado gerado pelo trabalhador
- 04Confirmação ou excluir
- 05Caminho de reentrega
- 06registro duplicado
Use-o quando
Use esta regra quando perder um trabalho for pior do que lidar com ele duas vezes. Dê a cada mensagem um ID estável. Uma mensagem repetida não deve cobrar, enviar e-mail ou salvar duas vezes.
Não o use quando
A entrega não significa que o trabalho foi bem-sucedido. Não prometa exatamente um resultado. Encargos ou ações externas precisam de seu próprio mecanismo de prevenção de duplicatas.
Nome usado no código
deliver -> process -> acknowledge/delete; missing acknowledgement -> redeliver; event ID -> dedupe Antes de lançar
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Entrega Pelo Menos Uma Vez (At-Least-Once Delivery). User context: Um worker salva o recibo `evt-42` mas para antes de excluir a mensagem da Amazon SQS. A SQS posteriormente entrega a mesma mensagem novamente. O próximo worker vê o ID do evento salvo e retorna o recibo existente em vez de criar um segundo. Technical concept or control: Entrega Pelo Menos Uma Vez (At-Least-Once Delivery). Why it fits: Use esta regra quando perder um trabalho for pior do que lidar com ele duas vezes. Dê a cada mensagem um ID estável. Uma mensagem repetida não deve cobrar, enviar e-mail ou salvar duas vezes. Do not use it when: A entrega não significa que o trabalho foi bem-sucedido. Não prometa exatamente um resultado. Encargos ou ações externas precisam de seu próprio mecanismo de prevenção de duplicatas. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Nenhum padrão oficial único controla todo o termo. Seu significado pode mudar entre equipes, plataformas ou frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Conferir este pedido
Review how Entrega Pelo Menos Uma Vez (At-Least-Once Delivery) is used now. Definition: A entrega pelo menos uma vez tenta evitar que uma mensagem seja perdida, mas a mesma mensagem pode chegar mais de uma vez. O consumidor deve lidar com repetições com segurança. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.