Retry Pattern

Architecture 🟢 Junior

Définition

Retente automatiquement une opération échouée avec un délai croissant (backoff exponentiel). Gère les erreurs transitoires.

Analogie

Rappeler quelqu'un qui ne répond pas : tu attends 1 min, puis 5 min, puis 15 min avant de réessayer.

Exemple de code

async function retry(fn, attempts = 3) {
  for (let i = 0; i < attempts; i++) {
    try { return await fn(); }
    catch(e) { await sleep(2 ** i * 1000); }
  }
  throw new Error('Max retries reached');
}

Cas d'usage

Appels réseau, envoi d'emails, opérations cloud avec erreurs transitoires.

Anti-pattern

Retry sans backoff ni limite — bombarder un service déjà en difficulté.
#architecture#interview#resilience

← → au clavier pour passer d'une fiche à l'autre