System design capacity calculator
Back-of-the-envelope numbers for the first five minutes of a design interview. Change any input; the link in your address bar updates, so you can share the exact scenario.
Results
The formulas
- Requests per day = users × actions per user. Split into reads and writes with the ratio.
- Average QPS = requests per day ÷ 86,400 (about 105, which is the number to remember).
- Peak QPS = average × peak factor. Capacity is sized for the peak, not the average.
- Storage per day = writes per day × write size. Total = per day × 365 × years × replication factor.
- Bandwidth = QPS × payload size. Outbound uses read QPS × response size.
- Cache size = daily read data × the hot share. The 80/20 rule is a starting guess, not a law: check the real skew.
These are estimates. The interview skill is stating assumptions out loud, then noticing which number changes the design (for example, one database node cannot take 100,000 writes per second, so you shard).
Keep going
- Caching and sharding: what to do when the numbers above are too big for one machine.
- How to choose a database, driven by these same access-pattern numbers.
- Latency numbers every engineer should know.
- All system design lessons, free, with animated walkthroughs.