Aller au contenu

Backoff exponentiel

Le backoff exponentiel multiplie le délai entre les nouvelles tentatives, jusqu’à un plafond défini.

Également appeléExponential backoffAttente exponentielle entre tentatives
API et contrats de données

Le backoff exponentiel, ou attente exponentielle, augmente le délai entre les nouvelles tentatives selon un facteur, généralement jusqu’à un plafond. Après une panne temporaire, l’application ne renvoie donc pas immédiatement la même requête. Cette règle de délai fait partie d’une stratégie de réessai.

Séparer le délai et la règle d’arrêt

Un exemple fictif d’API attend une seconde après un échec, double le délai et le plafonne à quatre secondes : 1 → 2 → 4 → 4 s. Ce sont des intervalles de base illustratifs, sans variation aléatoire, et non des réglages recommandés. Le jitter ajoute une variation aléatoire au délai réel pour éviter que de nombreux clients réessaient simultanément.

Le plafond ne met pas fin aux tentatives. Leur nombre maximal, la durée totale et les erreurs admissibles doivent être définis séparément. Attendre davantage ne corrige pas une requête invalide ; une opération pouvant avoir des effets secondaires doit pouvoir être répétée sans risque.

Si la bibliothèque cliente réessaie déjà, une autre boucle dans l’application peut multiplier les appels. L’équipe doit donc examiner les deux couches ensemble.

Sources