Tentatives & backoff
Le Commis effectue jusqu’à 5 tentatives par livraison, avec un backoff croissant (polynomially_longer : l’intervalle s’allonge à chaque essai).
| Résultat de votre réponse | Comportement |
|---|---|
2xx | Succès. La livraison est considérée comme acquittée, aucune nouvelle tentative. |
429, 5xx, erreur réseau | Retryable. Nouvelle tentative après backoff. |
Autres 4xx (ex. 400, 401, 403, 404), erreur SSRF | Non retryable. Abandon immédiat, pas de nouvelle tentative. |
L’état de chaque livraison (livrée / échouée) est consultable dans la page « réglages API » de l’établissement. En cas d’échec persistant, vérifiez-y l’historique des livraisons avant d’investiguer côté serveur.
Répondre vite
Côté Le Commis, les timeouts sont courts : connexion 3 s, lecture 5 s, écriture 5 s (et HTTPS obligatoire). Si votre handler met trop longtemps, la requête est coupée et comptée comme un échec réseau (retryable).Debounce 30 s : changements fusionnés
Quand plusieurs modifications surviennent en rafale, Le Commis ne vous envoie pas une livraison par modification. Les changements rapprochés sont fusionnés sur une fenêtre de 30 s en une seule livraison :- les
changed_resourcesdes modifications sont mergés (union), - le
content_revisionest rafraîchi à la dernière valeur.
changed_resources: ["business_hours", "menus"].
Traitez toujours
changed_resources comme un ensemble pouvant contenir plusieurs valeurs, jamais comme une valeur unique.Idempotence : dédupliquer par delivery_id
Parce qu’une livraison peut être réessayée, votre endpoint peut recevoir deux fois la même livraison. Rendez donc votre traitement idempotent en dédupliquant sur l’en-tête X-LeCommis-Delivery (identique au champ delivery_id du payload).
Le principe : la première fois que vous voyez un delivery_id, vous l’enregistrez et vous traitez. Les fois suivantes, vous acquittez (2xx) sans retraiter.
Node.js