System design

Stage 1 · Lesson 4 of 10

Back-of-the-envelope capacity estimates

Core concepts and building blocks

Rough numbers turn a vague requirement into design decisions. This is . Start from users and what they do.

Say 10 million daily users each post 2 photos a day. That is 20 million uploads a day, or about 230 per second on average and perhaps 1,000 at peak. At 2 MB per photo, that is 40 TB of new storage every day.

That rules out keeping images in the database. It points to , a service built for large files, and a . Use round numbers: a day is about 100,000 seconds.

Keep units visible and state every assumption. The goal is the right (roughly the right number of zeros), not precision.

Common trapdoing the arithmetic and then never using it: every estimate should end in a decision, such as "this fits on one machine" or "this needs sharding".

A question to check yourself, an AI practice session and 2 cheat sheet entries come with the full roadmap. Unlock

Resources for this stage

Start with· follow one of these

  • CoursePaid
    Grokking System Design Fundamentals

    Design Gurus · Beginner · Subscription

    Load balancing, API gateway, proxies, caching, CAP and Bloom filters: week 1 of the plan in order

  • GitHub repoFree
    The System Design Primer

    Donne Martin · Intermediate

    Free: its scalability, latency, availability, CDN, load balancer and cache sections

Keep handy

  • Free Design Gurus concept index for looking up a term in the middle of a lesson

Also worth your time

Mark this stage as not done?