FREE Interview mastery LESSON · Interview mastery

Design from workload to failure

Capacity, boundaries, and evolving trade-offs

A system design is a sequence of justified commitments.

Clarify the user outcome, scale, consistency, latency, durability, privacy, and cost requirements. Estimate orders of magnitude with units. Draw the critical write and read paths before naming components. Then introduce partitioning, replication, caching, and queues only when a requirement creates the need, naming the failure each mechanism adds.

A box earns its place by satisfying a requirement better than the simpler design.

Numbers discipline the diagram.

Requests per second, object size, retention, growth, fan-out, and hot-key distribution expose whether a single node, cache, log, or network link is plausible. Use ranges and sensitivity rather than false precision. Revisit estimates when the architecture changes so the math remains connected to the boxes.

Capacity arithmetic is a consistency check on the story.
Practise this lesson free →