Wiederholungen: Wann sie helfen und wann sie alles schlimmer machen
Von Das Atflow-Team

Eine fehlgeschlagene Operation zu wiederholen ist das häufigste Zuverlässigkeitsmuster und eines der einfachsten, um es katastrophal falsch zu machen. Richtig gemacht verschwinden vorübergehende Fehler, bevor es jemand bemerkt. Falsch gemacht erledigen Ihre eigenen Clients einen Dienst, der ohnehin schon kämpft.
Nur wiederholen, was sich wiederholen lässt
Ein Timeout lohnt eine Wiederholung; ein 400 nicht, und wird es auch nie. Einen deterministischen Fehler zu wiederholen ist nur ein langsamerer Weg zu scheitern, der zusätzlich Last erzeugt. Die erste Entscheidung ist immer, ob diese Fehlerklasse bei einem zweiten Versuch überhaupt erfolgreich sein kann.
Die Regeln, die zählen
- Exponentielles Backoff mit Jitter — synchronisierte Wiederholungen sind eine selbst verursachte Thundering Herd.
- Eine harte Obergrenze für Versuche und ein definiertes Ziel für alles, was sie aufgebraucht hat.
- Idempotenz, sonst bucht die Wiederholung dem Kunden das Geld zweimal ab.
- Ein Circuit Breaker, damit Sie aufhören, auf etwas einzuschlagen, das eindeutig ausgefallen ist.
Das sind Richtlinienentscheidungen, keine Code-Details — deshalb gehören sie an einen sichtbaren Ort. Ein Wiederholungszweig mit »+72 h, max. 3« darauf ist prüfbar, eine Konstante, die tief in einem Dienst vergraben ist, nicht.