Zum Hauptinhalt springen

Schnelle Software macht nicht alles schneller. Sie nimmt Arbeit aus der Wartezeit der Nutzer heraus.

Die Leiter

Jede Stufe ist billiger als die darunter. Arbeite die Liste ab, bevor du nach einer schnelleren Maschine greifst.

  1. 1 Gar nicht berechnen critical-path-deferred-tail
  2. 2 Nur einmal berechnen hierarchical-cache
  3. 3 Berechnen, bevor danach gefragt wird intent-preloading
  4. 4 Nah an den Daten oder den Nutzern berechnen compute-locality
  5. 5 Unabhängige Arbeit nebenläufig berechnen no-waterfall-loading
  6. 6 Das Ergebnis zwischenspeichern stale-while-revalidate
  7. 7 Optimistisch antworten, wo es sicher ist optimistic-mutation
  8. 8 Unkritische Arbeit verschieben critical-path-deferred-tail

Kritisch, verschoben, im Hintergrund

Eine Aufgabe in die richtige Klasse einzuordnen bringt meist mehr, als sie schneller zu machen.

Kritisch

Muss fertig sein, bevor das Ergebnis sicher zurückgegeben werden kann: Authentifizierung, Autorisierung, Validierung, der kanonische Schreibvorgang und die Daten für das erste Rendering.

Verschoben

Sollte bald passieren, aber niemand wartet darauf: Analytics, Suchindizierung, Benachrichtigungen, abgeleitete Metadaten.

Hintergrund

Überhaupt nicht an diese Antwort gebunden: Exporte, Medienverarbeitung, KI-Anreicherung, Aufräumarbeiten, teure Projektionen.

Was hier gemessen wird

Der Daten-Tab führt beide Varianten jedes Vergleichs bei der anfragenden Anfrage aus — eine echte 60ms-Abhängigkeit, ein echter Ansturm von 100 Aufrufern, die echten Cache-Module. Die Messflächen liegen anderswo:

Wann nicht

Performance-Architektur erzeugt Komplexität, und Komplexität ohne Gegenwert ist reiner Aufwand. Eine statische Seite braucht Asset-Auslieferung, Preloading und Bundle-Budgets — nicht Redis, Singleflight, Read Models oder verteiltes Tracing.

Setze nur die kleinste Menge um, die die tatsächliche Latenz deiner Anwendung rechtfertigt.

Geht dieses Pattern noch besser? Sag uns, wie.

Feedback geben