Ce qui compte comme un succès
Une réponse HTTP 2xx en moins de 10 secondes. Tout le reste (4xx, 5xx, délai dépassé, connexion refusée) est un échec. Le corps de la réponse n’est pas utilisé.Relances
Au bout de cinq tentatives échouées, l’envoi est marqué échoué dans l’historique. L’en-tête
X-PulseSell-Attempt indique le numéro de la tentative.
Désactivation automatique
Si votre adresse échoue 5 envois de suite, Pulse-Sell désactive le Pulse pour ne pas marteler un serveur en panne. Vous êtes prévenu de deux façons :- une notification dans le tableau de bord ;
- un e-mail à l’adresse de votre compte (jamais le secret de signature).
PATCH /pulses/{id} avec { "status": "active" }) : le compteur d’échecs repart à zéro.
Historique
Chaque envoi est conservé avec son statut, le code HTTP reçu, la durée et le nombre de tentatives.status : pending, success ou failed. Le tableau de bord affiche les mêmes informations dans l’onglet Livraisons, avec les chiffres des 7 derniers jours.
Recommandations pour votre récepteur
1
Vérifiez la signature
Avant tout autre travail. Voir Sécurité.
2
Enregistrez l'événement, répondez 200
Écrivez-le dans une file ou une table, puis répondez immédiatement. Ne faites pas un travail long avant de répondre : au-delà de 10 secondes, c’est un échec et un doublon arrivera.
3
Traitez en arrière-plan, une seule fois
Dédoublonnez sur
event.id (une contrainte d’unicité en base suffit).4
Surveillez
Alertez-vous quand votre propre file d’événements grossit : c’est le premier signe d’un problème.
Les événements ne sont pas garantis dans l’ordre : une relance de
sale.completed peut arriver après license.issued. Fiez-vous aux dates (created_at) et aux états lus dans les objets, pas à l’ordre d’arrivée.
