Jump to a problem, path or page
Jump to a problem, path or page
01 · Develop the design
Use edge caches with explicit representation keys, an origin shield for refill isolation and a versioned asset publication policy. Treat private delivery and distributed purge as separate enforced contracts.
Stage 1
Separate identity and freshness
Versioned immutable asset paths identify bytes. TTL, validation and purge policies determine how long a mutable representation remains usable.
Stage 2
Plan the miss storm
Use a shield, one refill per key and bounded waiting/fallback. A failed origin must not create unlimited queued fetches.
Stage 3
Check access at the serving boundary
Private content needs enforced credentials on every delivery request. Do not rely on an obscure URL or blindly cache cookie-bearing responses.
02 · Work through the method
03 · Justify the choices
What makes a shared response safe to cache?
Explicit cacheability and a key including all representation/access dimensions
Ignoring host, query, headers or access scope can mix representations and leak private content.
How should a hot expired object be fetched?
Coalesce misses and bound origin work through a shield
A shield and single-flight fetching reduce synchronized refill load and origin collapse.
What does an asynchronous purge promise?
Propagation with an explicit completion/freshness contract
Distributed invalidation has propagation delay and cannot retract data a client already holds.
04 · Plan the evidence