What Is System Design
System design is the work of choosing the parts of a system and how they connect. A system design interview is a conversation that grades the approach to that work, not one memorised right answer.
One server, steady arrivals
A single server handles a fixed number of requests each second. Steady arrivals below that limit all get through.
capacity = 10
arrivals = [7, 8, 9]
for second, arriving in enumerate(arrivals, start=1):
handled = min(arriving, capacity)
turned_away = arriving - handled
print(f"second {second}: handled {handled}, turned away {turned_away}")Growth passes the limit
Growth raises arrivals while the server capacity stays fixed. The turned-away count appears once arrivals pass that capacity.
capacity = 10
arrivals = [9, 11, 14]
for second, arriving in enumerate(arrivals, start=1):
handled = min(arriving, capacity)
turned_away = arriving - handled
print(f"second {second}: handled {handled}, turned away {turned_away}")Example
capacity = 10
arrivals = [6, 10, 13, 18]
handled_total = 0
for second, arriving in enumerate(arrivals, start=1):
handled = min(arriving, capacity)
handled_total += handled
print(f"second {second}: handled {handled}, turned away {arriving - handled}")
print("arriving total:", sum(arrivals))
print("handled total:", handled_total)
print("turned away total:", sum(arrivals) - handled_total)Key points
- Parts: the separate pieces that answer requests, store data, and do work.
- Connections: the paths that requests follow between the parts.
- A design: one chosen set of parts and connections for a stated job.
- Interview credit: a candidate earns credit by clarifying needs, judging scale, and naming trade-offs.
In this example, the fixed server handles 36 of the 47 arriving requests, and growth past its limit is what turns the rest away.
Note
This course teaches the approach first, then the building blocks, then one full design.
Try it Yourself
Edit the code, then press Run.
Running is simulated
Exercise
What does a system design interview mainly grade?