Skip to main content
Votre serveur peut être en panne, lent ou en maintenance. Pulse-Sell est conçu pour que vous ne perdiez pas d’événement : la livraison est garantie « au moins une fois », avec des relances automatiques.

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.
Parce qu’un envoi peut arriver plus d’une fois (réponse perdue, relance), votre traitement doit être idempotent : gardez les event.id déjà traités et ignorez les doublons.

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).
Une fois votre serveur réparé, réactivez le Pulse (tableau de bord, ou 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.
Filtrez par 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.