Mécanisme de retry
JEKO utilise un système de retry automatique pour garantir la livraison des webhooks.Politique de retry
- Nombre de tentatives : Jusqu’à 3 tentatives en cas d’échec
- Backoff exponentiel : Délai croissant entre chaque tentative
- 1ère retry : ~1 minute après l’échec initial
- 2ème retry : ~5 minutes après la 1ère retry
- 3ème retry : ~15 minutes après la 2ème retry
Conditions de retry
Un webhook sera réessayé si :- Votre endpoint retourne un code HTTP >= 500 (erreur serveur)
- Votre endpoint ne répond pas dans les 30 secondes (timeout)
- Votre endpoint retourne un code HTTP 429 (trop de requêtes)
Conditions de succès
Un webhook est considéré comme livré avec succès si :- Votre endpoint retourne un code HTTP 200-299
- La réponse est reçue dans les 30 secondes
Codes de statut HTTP
Codes de succès (pas de retry)
200 OK: Webhook traité avec succès201 Created: Webhook traité avec succès202 Accepted: Webhook accepté pour traitement asynchrone
Codes d’erreur (retry)
500 Internal Server Error: Erreur serveur - sera réessayé502 Bad Gateway: Erreur de gateway - sera réessayé503 Service Unavailable: Service indisponible - sera réessayé504 Gateway Timeout: Timeout - sera réessayé
Codes d’erreur client (pas de retry)
400 Bad Request: Requête mal formée - ne sera pas réessayé401 Unauthorized: Non autorisé - ne sera pas réessayé404 Not Found: Endpoint introuvable - ne sera pas réessayé422 Unprocessable Entity: Données invalides - ne sera pas réessayé
Timeout
- Timeout de connexion : 30 secondes
- Timeout de réponse : 30 secondes
Ordre de livraison
Les webhooks peuvent être livrés dans un ordre différent de celui des événements. Ne supposez pas que les webhooks arrivent dans l’ordre chronologique. Recommandation : Utilisez le champtimestamp dans le payload pour déterminer l’ordre réel des événements.
Duplication
Bien que JEKO s’efforce d’éviter les duplications, il est possible de recevoir le même webhook plusieurs fois (par exemple, lors des retries). Recommandation : Implémentez une logique d’idempotence basée sur l’ID de l’événement ou la référence de la transaction.Délai de livraison
Les webhooks sont généralement livrés dans les secondes qui suivent l’événement. Cependant, en cas de retry, il peut y avoir un délai plus long.Monitoring
Pour surveiller la livraison de vos webhooks :- Logs : Enregistrez tous les webhooks reçus avec leur timestamp
- Métriques : Surveillez les taux de succès/échec
- Alertes : Configurez des alertes pour les échecs répétés
Bonnes pratiques
- Réponse rapide : Traitez les webhooks rapidement et retournez une réponse immédiate
- Traitement asynchrone : Pour les traitements longs, acceptez le webhook immédiatement et traitez-le en arrière-plan
- Idempotence : Assurez-vous que le traitement d’un webhook est idempotent
- Gestion d’erreurs : Gérez les erreurs gracieusement et retournez toujours un code HTTP approprié