Welche Strategien zur Cache-Invalidierung sind bei hochdynamischen Preisänderungen in einer globalen CDN-Struktur am effizientesten?

Bei hochdynamischen Preisänderungen stoßen klassische TTL-basierte (Time-to-Live) Ansätze an ihre Grenzen, da sie entweder zu hohe Latenzen bei der Preisaktualisierung oder eine zu starke Last auf dem Origin-Server verursachen. Wir setzen in solchen Szenarien auf eine differenzierte Strategie, die die statischen Inhalte von den volatilen Preisdaten trennt.

Die effizientesten Ansätze lassen sich wie folgt kategorisieren:

StrategieLatenzKonsistenzCDN-LastEignung
Surrogate Keys (Tagging)MittelHochHochGruppen-Invalidierung (z.B. Kategorie)
Stale-While-RevalidateNiedrigMittelNiedrigUnkritische Preisänderungen
Edge Computing / FunctionsNiedrigHochMittelEchtzeit-Preisanpassungen
Client-side FetchingNiedrigSehr HochNiedrigHochpreisige/Volatile Produkte

Surrogate Keys ermöglichen es uns, Objekten im Cache spezifische Tags zuzuweisen. Bei einer Preisänderung wird nicht die gesamte URL, sondern nur der entsprechende Key invalidiert. Dies reduziert den Purge-Aufwand, führt aber bei globalen Strukturen zu einer gewissen Propagationszeit.

Um diese Latenz zu eliminieren, nutzen wir im Rahmen unserer Expertise für Cloud & Digital Workplace verstärkt Edge Functions. Hierbei wird die HTML-Seite statisch im CDN vorgehalten, während der Preis über eine Edge-Logik (z.B. Cloudflare Workers oder Fastly Compute@Edge) in Echtzeit aus einem Key-Value-Store am Edge-Knoten injiziert wird. Dies vermeidet einen Request zum Origin-Server vollständig.

Alternativ bietet sich das Client-side Fetching an. Die Seite wird als statisches Fragment ausgeliefert, und der Preis wird nach dem Laden der Seite via API-Call vom Browser abgefragt. Dies garantiert die höchste Konsistenz, erhöht jedoch die Anzahl der HTTP-Requests pro Page-Load.

Für die Implementierung ist die Wahl der Strategie abhängig von der geforderten Konsistenzrate. Während SWR für allgemeine Katalogseiten ausreicht, erfordern Checkout-nahe Seiten eine strikte Invalidierung oder dynamische Injektion.

Wir empfehlen den konsequenten Einsatz von Edge Functions in Kombination mit einem Key-Value-Store am Edge, da nur so die globale Konsistenz bei minimaler Latenz ohne massive Purge-Overheads gewährleistet werden kann.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt