Wenn wiederholte Anfragen einen Ausfall verschärfen
Timeouts, begrenzte Wiederholungen und Idempotenz. So breitet sich eine kleine Störung nicht durch das gesamte System aus.

Eine externe API wird langsam und die Anwendung wiederholt Anfragen. Das klingt nach einer sinnvollen Absicherung. Machen jedoch alle Clients gleichzeitig dasselbe, bekommt der überlastete Dienst noch mehr Arbeit. Wiederholungen brauchen Regeln: welche Vorgänge geeignet sind, wie viele Versuche erlaubt sind und wann endgültig Schluss ist.
Ein Timeout begrenzt die Wartezeit
Jeder Aufruf eines entfernten Dienstes braucht begrenzte Verbindungs- und Antwortzeiten. Berücksichtigen Sie außerdem die gesamte Dauer der Benutzeraktion. Wartet ein Kunde auf drei Dienste, können drei lange Einzel-Timeouts eine unzumutbare Verzögerung ergeben. Das Zeitbudget muss für den ganzen Ablauf gelten.
Nach einem Timeout wissen Sie nicht automatisch, ob die Gegenstelle den Vorgang ausgeführt hat. Die Antwort könnte erst nach einem erfolgreichen Schreibzugriff verloren gegangen sein. Bei Zahlungen, Bestellungen oder Nachrichten ist dieser Unterschied entscheidend.
Wiederholen Sie nur sichere Vorgänge
Vorübergehende Nichterreichbarkeit kann einen weiteren Versuch rechtfertigen. Ungültige Eingaben oder fehlende Berechtigungen meist nicht. Verwenden Sie bei Schreibvorgängen den Idempotenzmechanismus der jeweiligen API. Derselbe Schlüssel muss denselben beabsichtigten Vorgang bezeichnen und darf zwischen Versuchen seine Bedeutung nicht ändern.
Begrenzen und verteilen Sie die Versuche
Verlängern Sie die Wartezeit zwischen Versuchen schrittweise und ergänzen Sie einen zufälligen zeitlichen Versatz. So kommen nicht alle Clients im selben Moment zurück. Setzen Sie eine Höchstzahl und eine Gesamtdauer. Liefert der Dienst Retry-After, beachten Sie die Angabe innerhalb des verfügbaren Zeitbudgets.
Prüfen Sie Wiederholungen in mehreren Schichten. Wiederholen SDK, Backend und Warteschlange dieselbe Anfrage, kann sich die Zahl der Aufrufe vervielfachen. Legen Sie fest, welche Schicht zuständig ist, und messen Sie ursprüngliche Anfragen getrennt von weiteren Versuchen.
Planen Sie den Betrieb ohne die Abhängigkeit
Nicht jede Funktion braucht jeden Anbieter. Ein Katalog kann ohne Empfehlungen erreichbar bleiben. Bei einer unverzichtbaren Abhängigkeit helfen eine klare Fehlermeldung und ein sicherer nächster Schritt. Ein Circuit Breaker kann Aufrufe vorübergehend unterbrechen, benötigt aber ein durchdachtes Verhalten bei der Wiederaufnahme.
- Timeouts für Aufruf und gesamten Vorgang setzen.
- Idempotenz bei Schreibvorgängen prüfen.
- Versuche begrenzen und zeitlich streuen.
- Langsame Antworten, verlorene Antworten und Totalausfall testen.
Was Sie mitnehmen
Wiederholungen ersetzen keine Verfügbarkeit. Sie sind eine begrenzte Hilfe bei vorübergehenden Fehlern, die dem Dienst Zeit zur Erholung geben soll, ohne seine Last zu vervielfachen.


