Responda depois da persistência
- Valide a assinatura sobre o corpo bruto.
- Persista o evento e a chave idempotente.
- Confirme com HTTP 200 ou 204.
- Execute trabalho demorado fora da requisição.
Torne o consumidor idempotente
Use uma restrição única que represente o efeito processado. Para eventos com item correspondente emtransaction.events, combine transaction.id, event e o id do evento. Para expired, que pode não criar um novo item, combine transaction.id, event e transaction.updated_at e confirme o estado antes do efeito.
Não use apenas a ordem de chegada. Um evento repetido ou atrasado não pode reverter um estado mais recente sem uma regra explícita do seu domínio.
Modo legado
O emissor legado usa timeout de 10 segundos, quatro tentativas e recuo exponencial. O número e o intervalo das tentativas do entregador baseado em fila pertencem à configuração operacional e não são prometidos por esta documentação.Registre o código e o corpo da sua resposta. Esses dados ajudam a distinguir uma rejeição de assinatura, uma falha transitória e um processamento duplicado.