Skip to content
System Design Fundamentals

Lesson 1 of 12 · 18 min

x
1/12

Lesson position in the course — not completion. Use Mark Complete to track finished lessons (saved in this browser).

How to Approach System Design

System design interviews and real-world architecture sessions share the same structure: clarify requirements, estimate scale, then design incrementally. Skipping requirements is the most common mistake — building a system that handles 10 million users when the product has 100 is engineering waste. Skipping scale estimation means discovering too late that your choices cannot handle the load.

Start every design with two questions: what does the system need to do (functional requirements), and what constraints must it meet (non-functional: latency, throughput, availability, consistency). Then do back-of-envelope math. A system handling 1 million requests per day averages on the order of ~10 RPS — often within one well-tuned server for light handlers, depending on work per request and peak-to-average ratio. At 100 million per day you are around ~1,000+ average RPS and usually need horizontal capacity. Workload math drives decisions; peaks matter more than daily averages.

Before
Jumping straight to architecture
1// Common mistake: designing before clarifying2"Let's use microservices, Kafka, and Redis."3// → Over-engineered for 1,000 users4// → May be wrong for 10M users5// → Team spends weeks on the wrong problem
After
Requirements-first approach
1// Step 1: Functional requirements2"Users can post, follow others, see a feed."3 4// Step 2: Scale estimation5DAU: 1M users6Posts per day: 5M  →  ~58 writes/sec7Feed reads: 50M   →  ~580 reads/sec8 9// Step 3: Design for those numbers10// Single Postgres + read replica handles this.11// No Kafka needed yet.

Check your understanding

  • What two requirement types should you clarify first?Show answer

    Answer

    Functional (what it does) and non-functional (latency, throughput, availability, consistency).
  • Why do back-of-envelope numbers matter?Show answer

    Answer

    They tell you whether one server suffices or you already need horizontal scale — before drawing microservices.
  • Rough order of magnitude: 1M requests/day average RPS?Show answer

    Answer

    About ~12 RPS on average (burst will be higher) — often one well-tuned server class, depending on work per request.

Progress is saved in this browser.

Next Lesson