Idempotência e retentativas
Como evitar processar o mesmo evento duas vezes e o que esperar de um reenvio.
Onde ficaAppsWebhooks
Cada entrega tem um id único no header x-pearfy-delivery. A mesma entrega pode chegar mais de uma vez, então use esse id pra não processar duas vezes.
Idempotência na prática
Antes de processar, veja se já tratou aquele x-pearfy-delivery. Se já viu, responda 2xx e ignore.
As retentativas
| Tentativa | Depois de |
|---|---|
| 2ª | 1 minuto |
| 3ª | 5 minutos |
| 4ª | 30 minutos |
| 5ª | 2 horas |
| 6ª | 6 horas (e 12h) |
Até 6 tentativas se a URL não responder 2xx. O timeout de cada chamada é de 10 segundos, e qualquer resposta fora de 2xx conta como falha, inclusive timeout.
DicaResponda 2xx assim que receber e processe o resto de forma assíncrona. Resposta rápida + idempotência é o que torna a retentativa segura.
Perguntas frequentes
Recebi o mesmo evento duas vezes. É bug?
Não. É esperado. Deduplique pelo x-pearfy-delivery.
Minha URL demora a responder. Qual o risco?
Acima de 10s vira timeout e conta como falha, disparando retentativa. Responda 2xx antes e processe depois.
Este artigo foi útil?