Circuit Breaker
DevOps 🔴 SeniorDefinition
Pattern de résilience qui coupe les appels vers un service défaillant après N échecs. Évite la cascade de pannes. États : closed, open, half-open.
Analogie
Un disjoncteur électrique : il coupe le courant automatiquement quand il détecte une surcharge pour protéger le reste.
Exemple de code
const breaker = new CircuitBreaker(callExternalAPI, {
timeout: 3000,
errorThresholdPercentage: 50,
resetTimeout: 30000
});
breaker.fallback(() => cachedResponse);
const result = await breaker.fire(params);
Cas d'usage
Protéger un service des cascades de pannes quand un service downstream est instable.
Anti-pattern
Pas de circuit breaker : un service lent bloque toutes les requêtes en cascade.