Zuverlässigkeit bei Aufrufen an externe Dienste
Vier Mechanismen
Zeitlimit. Bei jedem Aufruf, immer. Ein Aufruf ohne Zeitgrenze hält eine Ressource, bis das System erstickt.
Erneuter Versuch mit wachsender Verzögerung. Nur bei sicher wiederholbaren Aktionen und nur bei vorübergehenden Fehlern. Einen Validierungsfehler zu wiederholen ist Verschwendung.
Sicherung (Circuit Breaker). Nach einer Reihe von Fehlschlägen hört man für eine Weile auf zu versuchen. Das schützt Sie und den bereits kämpfenden Dienst.
Abgestufter Modus. Was das System zeigt, wenn der Dienst nicht verfügbar ist: zwischengespeicherte Daten, Teilfunktion oder eine klare Meldung.
Das Duplizierungsproblem
Scheitert ein Aufruf am Zeitlimit, ist unbekannt, ob die Aktion ausgeführt wurde. Senden Sie bei jeder Aktion mit Wirkung — einer Belastung, einem Versand, einer Erzeugung — einen eindeutigen Schlüssel, mit dem die Gegenseite eine Wiederholung erkennt. Ohne ihn kann ein erneuter Versuch doppelt belasten.
Was zu überwachen ist
Fehlerrate und Antwortzeit je externem Dienst getrennt, und den Zustand der Sicherung. Ein Anbieterausfall, der bei Ihnen als „das System ist langsam“ erscheint, verschwendet Stunden unnötiger Untersuchung.
Im Detail
Trennen Sie eine kritische Abhängigkeit von einer sekundären und stellen Sie sicher, dass eine sekundäre keine Hauptbahn zu Fall bringen kann. Ein Analytik- oder Anreicherungsdienst auf dem synchronen Pfad ist ein Ausfallpunkt ganz ohne geschäftliche Rechtfertigung.