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.