Circuit Breaker

Architecture 🟡 Mid

Definition

Detecte les defaillances et empeche l'application de tenter des operations vouees a l'echec. Trois etats : ferme, ouvert, semi-ouvert.

Analogie

Un disjoncteur electrique : il coupe le courant quand il detecte une surcharge pour proteger l'installation.

Exemple de code

class CircuitBreaker {
  #failures = 0;
  async call(fn) {
    if (this.#failures > 5) throw new Error('Circuit open');
    try { return await fn(); }
    catch(e) { this.#failures++; throw e; }
  }
}

Cas d'usage

Appels a des services externes instables pour eviter les cascades de pannes.

Anti-pattern

Retry infini sans circuit breaker — le service defaillant est submerge.

Termes lies

#architecture#interview#resilience#microservices