Docs At The Edge
Design the serving and publishing system for a global developer documentation site.
Requirements
Functional
- Serve versioned docs: every product has many released versions, and old versions stay readable forever.
- Full-text search scoped to one product version, ranked by relevance.
- Editors publish from a headless CMS. A publish may touch one page or an entire release of thousands of pages.
- A published change must be visible worldwide within 60 seconds.
Non-functional
- p95 time to first byte under 100 ms for readers on every continent.
- Reads dominate: roughly 99.9% of requests are reads.
- A release must never leave the site serving a half-updated version (no nav linking to a page that 404s).
- Search may degrade before page reads do.
Scale
- 2.5M daily readers, about 30M page views per day.
- Peak 12,000 HTTP requests per second at the edge, of which roughly 3,000 per second are document requests.
- 720k live pages (40 products x ~15 versions x ~1,200 pages), each about 60 KB of rendered HTML plus a 25 KB JSON payload for the client-side router.
- Peak 250 search queries per second.
- 300 publish events per day. The largest single release rewrites 5,000 pages at once.
- Corpus grows about 25% per year, and no version is ever deleted.
Out of scope
Authentication for private docs, the CMS editing experience itself, billing, and the analytics pipeline.
Sign in to answer questions and track your progress
Sign In