Fiabilité dans les appels aux services externes
Quatre mécanismes
Délai d'expiration. À chaque appel, toujours. Un appel sans limite de temps retient une ressource jusqu'à ce que le système s'étouffe.
Nouvel essai avec délai croissant. Seulement pour les actions sûres à répéter, et seulement pour les erreurs transitoires. Réessayer une erreur de validation est un gaspillage.
Disjoncteur. Après une série d'échecs, on arrête d'essayer pendant un moment. Cela vous protège et protège le service déjà en difficulté.
Mode dégradé. Ce que le système affiche quand le service n'est pas disponible : données mises en cache, fonctionnalité partielle ou message clair.
Le problème de la duplication
Quand un appel échoue avec un délai d'expiration, on ne sait pas si l'action a été exécutée. Pour chaque action avec impact — un débit, un envoi, une création — envoyez une clé unique permettant à l'autre côté de détecter une répétition. Sans elle, un nouvel essai pourrait facturer deux fois.
Quoi surveiller
Taux d'erreur et temps de réponse par service externe séparément, et l'état du disjoncteur. Une panne du prestataire qui apparaît de votre côté comme « le système est lent » gaspille des heures d'enquête inutile.
Pour aller plus loin
Séparez une dépendance critique d'une secondaire, et assurez-vous qu'une secondaire ne peut pas faire tomber un chemin principal. Un service d'analytics ou d'enrichissement sur le chemin synchrone est un point de défaillance sans aucune justification commerciale.