Ch. 19 · System Design

System Design Capacity Estimates and Assumptions

System Design Capacity Estimates and Assumptions. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readbeginnerupdated Oct 3, 2026

Capacity estimates turn workload assumptions into approximate resource needs. State peak behavior and uncertainty rather than inventing exact numbers.

Before you start

You should understand API requests, storage and basic capacity estimates. Begin with a concrete user action and its correctness requirement. Draw data flow and failure boundaries before selecting infrastructure; a technology name by itself does not explain why a design meets the requirement.

The practical goal is to reason through this situation: Requests per second follow active users, actions per user and concentration across time. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: State input assumptions

Define users, actions, retention and average object size.

Step 2: Separate average and peak

Traffic concentration changes needed capacity.

Step 3: Add overhead explicitly

Indexes, replication and headroom should not disappear inside one vague number.

Worked scenario

Requests per second follow active users, actions per user and concentration across time.

One million 1KB records imply roughly 1GB of raw payload under decimal assumptions. Three replicas and indexes increase stored bytes, while backups add a separate retention cost. This is an estimate rather than a benchmark; compression, metadata and access patterns can change actual capacity needs substantially.

Common mistake

Average daily traffic can severely understate peaks.

Verify the behavior

Vary each major assumption and identify which uncertainty most changes the design.

Interview exercise

Estimate storage growth.

Answer and reasoning

Multiply records, retained duration and average stored size, then include indexes, replicas and operational headroom separately.

Continue learning

Compare the scenario with the System Design interview questions and test your understanding with the System Design MCQs. For terminology and implementation details, consult the reference material.

More in System Design

read ✓System Design · hard

System Design: Bloom Filters

Use a Bloom filter to skip lookups with a tiny memory footprint, and understand its false-positive-only guarantee.

~2 min readread →
read ✓System Design · hard

System Design: Idempotent APIs

Make retried requests safe with idempotency keys, store the result per key, and return the original response on a repeat.

~2 min readread →
esc