Idempotency-Key resolve isso: a Routa garante que a mesma chave produz no máximo uma mensagem.
Onde se aplica
Os demais endpoints de escrita são desenhados para serem seguros de repetir (por exemplo,
disable e enable), mas não usam o header. Se você precisa evitar retentativas nesses casos, configure maxRetries: 0 no SDK.Como usar
Gere uma chave única por mensagem lógica (por exemplo, um UUID v4), antes da primeira tentativa, e envie a mesma chave em todas as retentativas.O que acontece em cada caso
No SDK, quando a chamada devolve o resultado de uma tentativa anterior,
message._replayed é true.
Escopo e prazo
- A chave vale dentro do projeto, para esta operação. Chaves de projetos diferentes nunca colidem.
- O registro é mantido por 24 horas. Passado esse prazo, repetir a chave executa a operação de novo. A janela serve para retentativas, não para deduplicação permanente.
- A comparação do corpo ignora a ordem das chaves e os espaços do JSON.