System Design · Architecture under constraints

How do you estimate capacity for a system design?

Mediumcapacity planningestimationback of envelopeUpdated Oct 2026
Quiz this track

Short answer

Estimate peak QPS, payload and storage growth, then derive bandwidth, connection and server counts with explicit assumptions and headroom. Cross-check the result against a simple unit cost.

Capacity estimation is not about a perfect number. It is about showing that the architecture is sized in the right order of magnitude and identifying which resource will run out first. Write the assumptions down so the interviewer can correct one and see the design adapt.

A repeatable method

  • Start with daily active users and actions per user per day
  • Convert to average QPS, then multiply by a peak factor, often three to ten
  • Estimate read and write ratios separately because they stress different paths
  • Multiply payload size by QPS for bandwidth, and by retention for storage
  • Divide by a safe per-node capacity to get instance counts, then add headroom
  • Sanity-check with cost, connection limits and a known bottleneck such as disk IOPS

For example, 10 million daily users each making 20 reads and 2 writes gives 200 million reads and 20 million writes per day. That is roughly 2,300 reads per second and 230 writes per second on average. At a peak factor of five, plan for about 11,500 reads per second and 1,150 writes per second. If a node handles 2,000 reads per second comfortably, you need at least six read-serving instances before redundancy and headroom.

Storage follows the same pattern. At 1 kilobyte per write and 20 million writes per day, new data is about 20 gigabytes per day, or roughly 7 terabytes per year before replication and indexes. Multiply by the replication factor and add index overhead. Then ask whether that volume fits the chosen store and backup window.

Do not confuse average and peak, and do not size to exactly 100 percent utilization. Queueing delay rises sharply near saturation, and failover removes capacity. State the headroom you assume, such as 50 percent, and why.

Follow-ups you should expect

Interviewers use these to check whether the first answer was understanding or memorisation.

  1. 1What peak factor would you assume and why?
  2. 2How does replication change your storage estimate?
  3. 3Which resource usually becomes the bottleneck first?
  4. 4How would you sanity-check an estimate that seems too small?

Say it in the interview

I estimate from daily active users and actions per user, convert to average QPS, then apply a peak factor and split reads from writes. Storage is payload times writes times retention, multiplied by replication and index overhead. I divide by a conservative per-node capacity and add headroom for failover and queueing. The point is to find the likely bottleneck and show the assumptions, not to produce a precise forecast.

Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.

Related questions

Reading is step one

Now say it out loud.

Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live System Design mock interview and get scored feedback on depth, clarity and confidence.