Ten Million Reads
Design the serving architecture for a national news site that must deliver 10 million article page views per day while the newsroom publishes only a few hundred stories.
Requirements
Functional: a reader opens an article URL or a section front page and gets the current published version; editors publish, edit, and unpublish stories; an unpublish or a legal correction must be visible worldwide within 30 seconds; images and static bundles are served alongside the page.
Non-functional: p95 time to first byte under 200 ms for readers in North America and Europe; the site stays readable when the database is unavailable; infrastructure cost is a first-class constraint, and bandwidth dominates the bill; 99.9% availability for reads.
Scale
10M page views per day, about 116 views per second averaged and roughly 460 per second during the 8am to 10am peak. Each page pulls about 25 sub-resources, so peak edge traffic is near 11,500 requests per second. The newsroom does 600 publishes and 2,000 edits per day. Rendered HTML is 60 KB gzipped; a full page with images is about 1.2 MB. Article text averages 40 KB, and each story carries about 6 images at 800 KB. Traffic is heavily skewed: the top 2,000 URLs take roughly 90% of views.
Out of scope
Personalization, recommendation ranking, ad serving, paywall and subscription billing, comment moderation, and the newsroom editing UI itself. Assume editor authentication already exists.
Sign in to answer questions and track your progress
Sign In