En 1 minute ~1 min de lecture

Dédupliquer un webhook avec l’identifiant d’événement

Deux livraisons d’un webhook ne signifient pas forcément deux événements.

Deux colonnes comparent les livraisons du webhook evt_42. À la première, une transaction SQL insère l’identifiant unique, marque la commande comme payée et valide les deux écritures. À la seconde, l’identifiant existe déjà et aucun nouvel effet n’est appliqué.
Deux livraisons portant le même identifiant d’événement ne produisent qu’une seule mise à jour de la commande.

La déduplication d’un webhook consiste à reconnaître un événement déjà traité pour ne pas appliquer deux fois son effet.

Une livraison est une tentative de transmission, pas un nouvel événement. Si le fournisseur prévoit des retries, une réponse perdue peut provoquer une nouvelle livraison alors que le traitement a réussi. Un identifiant d’événement stable entre les tentatives permet alors de reconnaître le doublon.

Par exemple, un webhook de paiement porte l’ID evt_42. Dans une même transaction SQL, l’application insère cet ID dans une table avec une contrainte UNIQUE et marque la commande comme payée. À la livraison suivante, l’ID existe déjà : aucun nouvel effet n’est appliqué. La déduplication porte sur l’événement, pas sur sa livraison.

Dans le même esprit

À lire ensuite