Ausfälle einplanen
Problem
Ein verteiltes System enthält:
Server
Netze
Datenträger
Datenbanken
Clouddienste
externe APIs
Über einen ausreichend langen Zeitraum gilt:
„Eine Komponente wird ausfallen.“
Wenn man genügend Zeit hat, wird etwas scheitern.
Lösung — Fehlertolerantes Design
Behandeln Sie den Ausfall als normalen Betriebszustand.
Verwenden Sie die Mechanismen, die wir bereits abgeleitet haben:
Timeouts
Wiederholungsversuche
Idempotenz
Redundanz
Warteschlangen
Gesundheitskontrollen
Backups
Beobachtbarkeit
Graceful Degradation
Zusätzlich zur Frage „Wie funktioniert es?“ untersucht die Architektur:
"Was passiert, wenn jede Annahme aufhört, wahr zu sein?"
Kerngedanke: Belastbare Systeme sind auf die Erwartung ausgerichtet, dass Komponenten schließlich ausfallen werden.