Escolha uma chave de deduplicação
Use o ID fornecido pela origem se for único e estável; caso contrário, derive uma chave de campos que identificam o mesmo evento de negócio. Evite usar apenas horário ou um ID amplo de entidade, que pode deixar duplicatas passar ou unir atualizações distintas.
Persista a chave e o estado de processamento atomicamente com o resultado de negócio quando possível. Defina por quanto tempo manter o registro, considerando tentativas tardias e janelas de replay.
Torne tentativas seguras
Antes de enviar mensagem, criar pagamento ou alterar registro externo, verifique se o efeito já ocorreu ou use suporte de idempotência no destino. Uma reinicialização deve continuar do progresso registrado.
Teste eventos duplicados, atrasados e fora de ordem, inclusive com dois workers simultâneos. Monitore detecções e rejeições para garantir que uma chave ruim não descarte trabalho legítimo.