Learning on Web Dev Open is free for all.

System Design & Performance > The methodThe same five questions at every scale
Phase 06The method283 of 434

The same five questions at every scale

System design is not a topic about large systems. It is a method, and the method does not change when the numbers do.

Concept14 minAI pair

Requirements: what must be true for this to be considered working, split into what it does and how well it must do it. Constraints: the numbers, how many users, how much data, how much latency is acceptable, how much money there is. Data flow: what moves where, in what order, and who owns each piece. Tradeoffs: the two or three real forks, each named with what it costs. Failure modes: what breaks, what the user sees when it does, and what you would rather they saw.

The reason to run this on a search box as well as on a social network is that the discipline is transferable and the numbers are not. Somebody who can say "the constraint here is that a user types faster than the round trip, so the design problem is what to show between keystrokes" is doing the same work as somebody sizing a shard key, and one of those problems shows up in your week.

The common failure is starting at the picture. Boxes and arrows appear early, they look like progress, and they smuggle in decisions nobody stated. If a diagram exists before the constraints are written down, it is a diagram of what the author has seen before rather than of this problem.

You should now be able to

  • State the five steps in order and what each produces
  • Apply the method to something small without it feeling absurd
  • Explain why starting with boxes and arrows fails
Ask the community

Loading…