Retry Pattern
Architecture 🟢 JuniorDefinition
Retente automatiquement une operation echouee avec un delai croissant (backoff exponentiel). Gere les erreurs transitoires.
Analogie
Rappeler quelqu'un qui ne repond pas : tu attends 1 min, puis 5 min, puis 15 min avant de reessayer.
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 reseau, envoi d'emails, operations cloud avec erreurs transitoires.
Anti-pattern
Retry sans backoff ni limite — bombarder un service deja en difficulte.