MusterKapitel III · Betrieb · Baustein 4 von 10

Circuit Breaker

Ein Circuit Breaker beobachtet Fehler einer Abhängigkeit und wechselt zwischen geschlossenem, offenem und halb offenem Zustand. Im offenen Zustand weist er Folgeaufrufe ab; nach einer Wartezeit prüfen begrenzte Testaufrufe die Erholung.

  1. SchwelleFehler in Folge öffnen den Breaker.
  2. AbweisenOffen: Aufrufe sofort ablehnen.
  3. ProbeEin Testaufruf entscheidet über Schließen.

Einordnung

Warum das wichtig ist

Ruft der Shop einen gestörten Zahlungsanbieter weiter auf, verlängert er Wartezeiten und belastet ihn zusätzlich. Ein Breaker zählt Fehler, öffnet bei einer Schwelle und prüft später die Erholung. Bulkhead und Retry vertiefen.

Dieser Baustein behandelt zustandsbasierte Aufrufbegrenzung. Retry regelt Wiederholungen einzelner Aufrufe; Bulkhead teilt Ressourcen zwischen Funktionen.

Auf einen Blick · Drei Zustände des Breakers

Zu viele Fehler öffnen den Schalter; nach einer Wartezeit prüft ein Probeaufruf, ob er wieder schließen darf.
Shop-Beispiel · Zustände durchklicken

Breaker-Zustände des Zahlungsaufrufs

Der Shop ruft den externen Zahlungsanbieter auf. Nach einer Folge technischer Fehler öffnet der Breaker für weitere Autorisierungsversuche.

So liest du das Bild

  1. Schwelle Der Zähler „Fehler in Folge“ erreicht 3, dann steht der Zustand auf „Offen“.
  2. Abweisen Im Zustand „Offen“ meldet das Protokoll „Sofort abgelehnt, Anbieter geschont“.
  3. Probe Nach „Wartezeit abgelaufen“ steht „Halb offen“ und das Protokoll nennt „Probeaufruf erlaubt“.
  1. GeschlossenAufrufe laufen durch, Fehler in Folge werden gezählt.
  2. OffenAufrufe werden sofort abgelehnt, der Anbieter bleibt unbelastet.
  3. Halb offenDer nächste Aufruf ist eine Probe und entscheidet.
Fehler in Folge
  1. Aufrufe an Zahlungsanbieter auslösen
Löse Aufrufe aus oder lass die Wartezeit ablaufen und beobachte Zustand und Fehlerzähler.

Nutzen & Grenzen

Hilft, wenn

  • Ein anhaltendes technisches Fehler- oder Verzögerungsmuster bindet Ressourcen, solange Folgeaufrufe ungebremst weiterlaufen.
  • Eine Funktion mit fachlich zulässiger Reduktion kann während der Störung begrenzt weiterarbeiten.

Grenzen

  • Ordne nur technische Verbindungs- und Zeitfehler dem Breaker zu; fachliche Ablehnungen einer Zahlung gehören in die Geschäftsregel.
  • Ein Fallback wie „Zahlung später“ kann veraltete oder falsche Ergebnisse liefern; lege fest, wann er zulässig ist.
  • Der Breaker begrenzt nur Aufrufe an eine Abhängigkeit; Kapazität innerhalb des Shops schützt ein Bulkhead.

In der Praxis

  1. Geltungsbereich und Fehler wählen. Grenze Operation, Abhängigkeit und technische Fehlerarten ab, die in die Zustandsentscheidung eingehen. Bestimme Mindeststichprobe und Beobachtungsfenster. Das Ergebnis ist ein Breaker, dessen Öffnung ein relevantes Störungsmuster abbildet und einzelne Ausreißer angemessen einordnet.
  2. Öffnung und Proben konfigurieren. Lege Fehlergrenze, Öffnungsdauer und Zahl gleichzeitiger Probeaufrufe fest. Definiere explizit, ob nach dem Schließen normaler Verkehr sofort zurückkehrt oder eine gesonderte Ramp-up-Policy gilt. So ist die Rückkehrregel prüfbar.
  3. Probeausgang und Rückkehr prüfen. Erfasse Zustandswechsel, Ablehnungen und Probeausgänge und teste den Übergang in beide Richtungen. Lege fest, ob normaler Verkehr sofort zurückkehrt oder eine gesonderte Ramp-up-Regel gilt. Das Ergebnis macht Schutzwirkung und Wiederanlauf nachvollziehbar.
Ausführliche Erklärung lesen

Ein Circuit Breaker beobachtet Aufrufe einer abgegrenzten Abhängigkeit. Im geschlossenen Zustand läuft Verkehr normal. Erreicht eine geeignete Fehlerquote im definierten Fenster eine Schwelle, wechselt er in den offenen Zustand und weist Folgeaufrufe unmittelbar ab. Nach einer Wartezeit lässt der halb offene Zustand wenige Proben zu. Das Muster ergänzt die Begrenzung durch Bulkhead und die Wiederholungsregeln von Retry.

Eine erfolgreiche Probe schließt den Breaker; ein erneuter Fehler öffnet ihn wieder. Fehlerklassifikation, Mindeststichprobe und Geltungsbereich bestimmen, ob der Zustandswechsel aussagekräftig ist. Ein Breaker steuert Verkehrsaufnahme und ersetzt weder fachlichen Fallback noch Wiederholungslogik. Ein zusätzlicher gradueller Ramp-up ist eine eigene Policy und muss ausdrücklich konfiguriert werden.

Michael Nygard hat das Muster in seinem Buch „Release It!“ bekannt gemacht.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Wie viele Fehler in Folge öffnen den Breaker, und was zeigt der Zustand danach?

    Lösung mit Begründung ansehen

    Drei Fehler in Folge. Danach steht der Zustand auf „Offen“, und Aufrufe werden sofort abgelehnt.

  2. AnwendenAuf eine neue Lage übertragen

    Der Breaker ist geschlossen. Zwei Aufrufe scheitern, einer gelingt, dann scheitert einer. Welchen Zustand und Zähler zeigt er?

    Lösung mit Begründung ansehen

    Geschlossen mit Zähler 1. Der Erfolg setzt den Zähler auf 0, erst drei Fehler in Folge öffnen den Breaker.

  3. BewertenEine Alternative abwägen

    Das Team senkt die Schwelle von 3 auf 1. Was spricht dafür, was dagegen, was empfiehlst du?

    Lösung mit Begründung ansehen

    Dafür: Der Breaker schützt den Anbieter schon beim ersten Fehler. Dagegen: Ein einzelner vorübergehender Fehler lehnt dann alle Zahlungen ab. Empfehlung: Eine Schwelle über 1 behalten und mit den gemessenen Fehlerraten des Anbieters abstimmen.

Vertiefen

Diese optionalen Vertiefungen ergänzen das Lernziel dieser Seite.

Fallback und Graceful Degradation

Ein Fallback bestimmt die fachlich zulässige Ersatzantwort; Graceful Degradation hält einen Teil des Nutzens mit verringerter Funktion verfügbar. Im Shop kannst du bei ausgefallener Personalisierung allgemeine Produkte anzeigen und den Checkout nutzbar halten. Ein ungeklärter Zahlungsausgang bleibt dagegen offen: Der Shop darf keinen Erfolg fingieren und die Bestellung nicht als bezahlt bestätigen.

Definiere, wann Ersatzantworten aktuell genug sind und welche erfolgreichen Proben den normalen Pfad wieder freigeben. Der Circuit Breaker erkennt technische Erholung; die Anwendung entscheidet über fachliche Antwort und Rückkehr.

Zum AusprobierenPrüfe zwei Shop-Fälle getrennt. Schalte Personalisierung aus und bestätige, dass Produktauswahl und Checkout weiter nutzbar sind. Unterbrich danach eine Zahlungsantwort nach möglichem Commit: Der Status bleibt ungeklärt, bis eine Statusabfrage ihn klärt. Lege fest, welche erfolgreichen Proben und frischen Daten den Normalbetrieb wieder freigeben.

Weiter im Lernpfad

Als Nächstes in Laufzeit & Betrieb: Bulkhead.

10 Bausteine

Weiter mitBulkhead