Edge Personalisation
Varying a cached response at the edge on a small number of attributes, so the page stays cacheable while still differing per visitor segment.
Full personalisation defeats caching: if every response differs, there is nothing to share between users and the edge is only a proxy.
Edge personalisation makes the variation coarse and explicit. The response varies by a small set of attributes — country, language, device class, experiment variant, logged-in or not — so the cache key includes those and there are perhaps a few dozen variants rather than one per user. Each is cached and served at edge latency.
The design work is in keeping the cardinality low. A cache key that includes a user identifier has as many entries as users and a hit rate near zero, and the failure is silent: the page works, it is simply never cached.
The second technique is to serve one cached shell and fill genuinely per-user regions from a separate request after first paint. That keeps the expensive part cacheable and accepts a small later shift for the personal part — which is a reasonable trade as long as the region is reserved in the layout, or it becomes a layout shift the user notices.