Jump to a problem, path or page
01 · Frame the problem
Design a CDN for immutable public assets and explicitly private content. Popular objects expire together, origins can fail and cache-key mistakes must not expose private responses.
Caching correctness depends on representation identity, freshness and authorization. Analyse whether an object is publicly reusable, which inputs vary its bytes and how publication or purge changes what an edge may serve.
02 · Find the design pressure
Begin with immutable versioned public assets and explicit cache keys. A generic cache-everything rule leaks private responses or mixes representations. Add private-delivery enforcement and observable purge semantics as separate contracts.
03 · Define success
Workload: 50,000 reads/s, 100 writes/s, 1000 B records, 100 ms read p99 target. These are exercise assumptions; the Solution includes capacity formulas.
04 · Identify the correctness boundary
Define cache identity over all representation-changing inputs and distinguish publicly reusable bytes from authorized private delivery. A shield coalesces origin refills, while immutable versioned paths simplify publication. Purge acknowledgements should report their declared coverage rather than imply instantaneous invalidation at every edge.
05 · Make it concrete
Asset /app/v1.js is cached at many edges. Publishing /app/v2.js allows both immutable versions to coexist. If an urgent purge removes v1, track completion across the supported edge population. A private response must not become a shared hit because its authorization header was omitted from policy.
Jump to a problem, path or page