Wenn Systeme ausfallen, interessiert es die Benutzer nicht, welche Abhängigkeit ausgefallen ist. Sie möchten wissen, ob das Produkt ihnen noch dabei hilft, die Aufgabe zu beenden, für die sie es geöffnet haben.
Deshalb ist sanfte Abwertung wichtiger als Betriebszeit als abstrakte KPI. Ein System kann teilweise abgewertet sein und dennoch den Großteil des Benutzerwerts erhalten, wenn die Ausfallmodi gut gestaltet wurden.
Wie gute Abwertung aussieht
Anstelle einer leeren Seite oder eines globalen Fehlerdialogs kann ein resilienter Produkt:
- zwischengespeicherte Katalogdaten bereitstellen
- ein sekundäres Widget ausblenden
- veraltete, aber dennoch nützliche Inhalte anzeigen
- Lesewege verfügbar halten, während Schreibwege pausiert sind
Das ist keine Verleugnung der Realität. Es bedeutet, zu entscheiden, welches Erlebnis weniger schädlich ist, wenn ein Teil des Stacks ungesund ist.
Warum stale-while-revalidate hilft
Das stale-while-revalidate-Modell ist nützlich für Inhalte, die sich selten ändern, aber ständig gelesen werden.
Cache-Control: s-maxage=60, stale-while-revalidate=86400
Das sagt einem zwischengeschalteten Cache, dass er veraltete Inhalte weiterhin bereitstellen kann, während er im Hintergrund versucht, sie zu aktualisieren. Wenn das Aktualisieren fehlschlägt, können die Benutzer dennoch eine nützliche Antwort anstelle eines Ursprungsfehlers erhalten.
Das macht Sinn für:
- Produktseiten
- Dokumentationen
- öffentliche Inhalte
Es macht viel weniger Sinn für:
- Kontostände
- Gesamtbeträge beim Checkout
- hochsensible Echtzeitdaten
UI-Abwertung ist ebenfalls wichtig
Die Resilienz des Backends ist nur ein Teil der Geschichte. Die Frontend-Architektur sollte Ausfälle isolieren, damit eine schwache Abhängigkeit nicht die gesamte Seite zum Absturz bringt.
Das bedeutet oft:
- Fallbacks auf Komponentenebene
- partielle Darstellung
- klare, aber ruhige Statusmeldungen
Weitere Lektüre