Jump to a problem, path or page
Jump to a problem, path or page
Updates as you edit. Run the review to record it; passing every check completes the problem.
Not yet passed: Client responsibility
Add Client and define its responsibility.
Not yet passed: Edge cache responsibility
Add Edge cache and define its responsibility.
Not yet passed: Origin shield responsibility
Add Origin shield and define its responsibility.
Not yet passed: API service responsibility
Add API service and define its responsibility.
Not yet passed: Database responsibility
Add Database and define its responsibility.
Not yet passed: Purge worker responsibility
Add Purge worker and define its responsibility.
Not yet passed: Client → Edge cache
A directed path must connect Client to Edge cache. Arrows represent requests, dependencies, or event flow.
Not yet passed: Edge cache → Origin shield
A directed path must connect Edge cache to Origin shield. Arrows represent requests, dependencies, or event flow.
Not yet passed: Origin shield → API service
A directed path must connect Origin shield to API service. Arrows represent requests, dependencies, or event flow.
Not yet passed: API service → Database
A directed path must connect API service to Database. Arrows represent requests, dependencies, or event flow.
Not yet passed: Purge worker → Edge cache
A directed path must connect Purge worker to Edge cache. Arrows represent requests, dependencies, or event flow.
Not yet passed: What makes a shared response safe to cache?
Not yet passed: How should a hot expired object be fetched?
Not yet passed: What does an asynchronous purge promise?
Not yet passed: API and data model notes
Write at least 80 characters describing concrete operations, inputs, outputs, state and errors. This check measures completeness, not semantic correctness.
Not yet passed: Trade-offs and failure cases
Write at least 80 characters about alternatives, failure handling and edge cases. Review the reasoning yourself using the reference discussion.
Rule-based educational feedback. Notes are checked by length only; topology checks confirm directed reachability. These checks do not validate semantics, latency, reliability or every valid 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. Normalize allowed hosts, paths and query parameters. Define response cacheability and the exact Vary/access dimensions; bypass shared caching for personalized responses unless isolation is explicitly designed. On a miss, coalesce fills per key and fetch through an origin shield under finite concurrency/deadline budgets. Cache only complete validated responses, with bounded object size and a documented negative-cache policy. Publish public assets under content/version identities with long immutable lifetimes. For mutable keys, use validators and explicit TTLs; purge events carry generation IDs and report propagation status. Authorize private manifest/object requests at the edge or another trusted serving boundary. During origin failure, serve stale content only where its policy permits, never as an authorization bypass.
There is no single correct diagram. Explain where yours differs and which requirement justifies it.