Comment fiabiliser les webhooks et éviter les doublons sans tout recommencer?
#1
Je travaille sur un petit projet perso où je dois connecter mon app à un service de paiement tiers, et je me retrouve un peu bloqué sur la partie webhook. J’ai bien configuré l’endpoint de mon côté, mais des fois les notifications n’arrivent pas, ou arrivent en double sans raison évidente. J’ai l’impression de passer plus de temps à déboguer la fiabilité de la livraison des webhooks qu’à coder la logique métier. Est-ce que d’autres ont déjà eu ce genre de galère avec la gestion des webhooks, et comment vous gérez ça sans vous arracher les cheveux ?
Répondre
#2
Le vrai souci avec les webhooks c est souvent le décalage entre ce que le tiers envoie et ce que ton service peut traiter sans s effondrer quand il y a des pics. Pour y gagner en fiabilité démarre par l idempotence et fais en sorte que chaque webhook ait une clé unique et que ta logique ignore les duplicatas. Ensuite déporte le traitement sur une file ou un worker. Reception stockages durable de l evenement et traitement asynchrone. Avec une file fiable tu peux gérer les échecs et les retries sans bloquer l endpoint. Vérifie les signatures et l horodatage pour rejeter ce qui semble falsifié. Et garde un petit journal des livraisons réussies et échouées. Le mot clé principal webhook
Répondre
#3
Je compatis tu as l impression de passer plus de temps a debug des livraisons qu a ecrire la vraie logique. Ma clé traçabilité et deduplication. Assigne un identifiant d evenement enregistre le durablement puis pousse la logique métier dans un worker indépendant. Si le même webhook arrive deux fois c est filtre sans que ca deborde ton code. Ajoute des retries avec un backoff mesure et un dead letter si ca capote vraiment. Et surtout teste avec des webhooks mocks et surveille les métriques des livraisons. Le mot clé principal webhook
Répondre
#4
Et si le probleme n etait pas le webhook mais la maniere dont ton API reagit aux notifications externes ou les timeouts reseau. Parfois on croit que c est le transport qui fait tout et c est une question d orchestration stockage fiable deduplication et un service qui peut reprendre sans dependre d un seul point d echec. Le sujet des webhooks devient alors une piece d un puzzle de resilience pas une baguette magique. Le mot clé principal webhook
Répondre
#5
Cle d idempotence et stockage persistant de l evenement et file pour le traitement c est la base pour le webhook robuste
Répondre
#6
On a commence en traitant chaque webhook dans le meme endpoint et on finissait par des livraisons manquees ou du doublon. On a separe les choses on stocke chaque evenement avec un identifiant unique on met une tache dans une queue et on laisse le worker charger la logique métier avec un identifiant lie. Si une tentative echoue on reessaie avec un backoff exponentiel et on endort les doubles grace au dedup. On verifie aussi les signatures et l horodatage pour eviter les appels non authentiques. Il y a aussi le cote fournisseur sandbox tests et un compteur de delais. Le mot clé principal webhook
Répondre
#7
On parle des frictions autour des webhooks la reception l integrite et la tolerance aux pertes ou duplications de notifications en dehors de toute conclusion hâtive et c est peut etre plus une question d architecture que d un seul protocole webhook
Répondre


[-]
Réponse rapide
Message
Saisissez votre réponse à ce message ici.

Code de confirmation
Veuillez saisir le texte figurant dans l’image ci-dessous. Ce procédé permet de bloquer les robots.
Code de confirmation
(insensible à la casse)

Aller au forum