Wie lässt sich Incremental Static Regeneration (ISR) skalieren, wenn ein Produktkatalog über 1 Million SKUs umfasst?

Die Skalierung von ISR bei über einer Million SKUs erfordert den Verzicht auf ein vollständiges Pre-rendering während des Build-Prozesses. Wir setzen hierbei auf eine hybride Strategie, die die Last zwischen Build-Time, Request-Time und Event-basierten Updates verteilt.

Zuerst wird die Menge der bei getStaticPaths vorab generierten Seiten auf die Top-Performer (z. B. die 1.000 meistbesuchten Produkte) begrenzt. Alle weiteren SKUs werden über die Option fallback: 'blocking' erst beim ersten Aufruf generiert. Dies verhindert astronomische Build-Zeiten und hält die Deployment-Pipeline stabil.

Um die Aktualität der Daten ohne massives Re-Rendering zu gewährleisten, implementieren wir On-Demand Revalidation. Statt fester Zeitintervalle (revalidate in Sekunden) triggern Webhooks aus dem PIM- oder ERP-System gezielt die Aktualisierung spezifischer Pfade.

Die folgende Tabelle zeigt die Verteilung der Strategien je nach Produktrelevanz:

SegmentStrategieTriggerZiel
Top-SKUsPre-renderingBuild-TimeMinimale Latenz (TTFB)
Aktive ProdukteOn-Demand ISRWebhook / EventEchtzeit-Datenkonsistenz
Long-TailLazy GenerationFirst RequestRessourcenschonung

Ein kritischer Flaschenhals ist die Performance der Datenquelle. Bei einer Million SKUs führen massenhafte Revalidierungs-Anfragen schnell zu Datenbank-Timeouts. Wir lösen dies im Bereich Data Engineering durch den Einsatz von Read-Replicas und einem dedizierten Caching-Layer (z. B. Redis) vor der API, um die Lastspitzen während der Regeneration abzufangen.

Zusätzlich optimieren wir die Cache-Header auf CDN-Ebene. Durch die Nutzung von stale-while-revalidate wird dem Nutzer eine veraltete Version der Seite serviert, während im Hintergrund die neue Version generiert wird. Dies verhindert, dass Nutzer bei einer Cache-Miss-Situation auf die Generierung der Seite warten müssen.

Wir empfehlen den konsequenten Einsatz von On-Demand Revalidation in Kombination mit einem strikten Top-SKU-Pre-rendering, da zeitbasierte ISR-Intervalle bei dieser Datenmenge entweder zu inkonsistenten Inhalten oder zu einer Überlastung der Backend-APIs führen.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt