-
Notifications
You must be signed in to change notification settings - Fork 0
Caching
Cache-løsningen vår har fire lag:
- Frontend HTML cache in-memory på hver XP-frontend pod
- Frontend HTML cache i Redis
- Frontend cache for JSON-response fra XP sitecontent-service i Redis
- Backend cache i XP sitecontent-service
HTML-cachen har keys på dette formatet: <path>:<deploy-miljø>:render:<frontend-build-id>:<dekoratøren-build-id>
F.eks: /min-path:prod:render:1234abcd:4321bcda
Key'en er dermed unik for hver kombinasjon av path, miljø, app-versjon og dekoratør-versjon. App- eller dekoratør-versjon kan påvirke HTML'en som rendres, og denne cachen kan derfor ikke være persistent på tvers av app/dekoratør-versjoner. HTML-cache har TTL på 24 timer, og TTL resettes til 24 timer ved hver get-request til Redis.
Cacher JSON-response fra XP. JSON-cachen har keys på dette formatet: <path>:<deploy-miljø>:xp-response
Denne cachen vil være persistent på tvers av app og dekoratør-versjoner. JSON cachen har TTL på 72 timer (resettes ikke).
Backend-cachen får en ny key prefix for hvert eneste publiserings-event fra XP/revalidator-proxy, slik at denne aldri trenger å invalideres. Den er av samme grunn som regel ganske kortvarig.
Når et innhold publiseres eller avpubliseres i XP, sender XP et kall til frontend for invalidering av cachen. Dette kallet går via revalidator-proxy. Denne appen har mulighet til å kalle XP-frontend poddene individuelt, slik at disse kan slette sin lokale cache.