Skip to main content
  1. References/
  2. Architecture Design Basics/
  3. Pattern Taxonomy/
  4. Fundamental Concepts/

Back-of-Envelope Estimation

·· 397 words· 2 mins

🔴 P0 — expected in every system design interview; grounds design decisions in numbers

Problem #

Design decisions need quantitative grounding. “Should we cache this?” depends on how many reads per second and how large the dataset is. Without estimation, you’re guessing.

Key Numbers to Internalise #

Latency #

OperationTime
L1 cache reference~1 ns
L2 cache reference~4 ns
Main memory reference~100 ns
SSD random read~16 μs
HDD random read~2 ms
Same-datacentre round trip~500 μs
Cross-continent round trip~150 ms

Throughput #

ResourceThroughput
SSD sequential read~1 GB/s
HDD sequential read~100 MB/s
1 Gbps network~100 MB/s
10 Gbps network~1 GB/s
Single Redis instance~100k ops/s
Single PostgreSQL instance~10k-50k queries/s
Single application server~1k-10k requests/s

Storage #

DataSize
1 million users × 1KB each~1 GB
1 billion rows × 100B each~100 GB
1 day of logs at 10K rps~50-100 GB

Availability #

SLADowntime/yearDowntime/monthDowntime/week
99%3.65 days7.31 hours1.68 hours
99.9%8.77 hours43.83 minutes10.08 minutes
99.99%52.6 minutes4.38 minutes1.01 minutes
99.999%5.26 minutes26.3 seconds6.05 seconds

Powers of Two #

PowerExactApprox.Size
101,024~1K1 KB
201,048,576~1M1 MB
301,073,741,824~1B1 GB
40~1.1 trillion~1T1 TB

Mechanism #

The estimation framework:

  1. Clarify what you’re estimating (QPS? Storage? Bandwidth?)
  2. Start from user-facing numbers (DAU, actions/user/day)
  3. Derive system-level numbers (QPS = DAU × actions/day / 86400)
  4. Apply 80/20 rule for peak: peak QPS ≈ 2-3× average
  5. Compare against known limits (can one Postgres handle this?)

Instinct #

Estimation is about order-of-magnitude, not precision. The goal is to determine whether you need 1 server or 100, whether you need caching or not, whether you need sharding or not. Getting within 2-5× of reality is sufficient.

  • RULE OF THUMB: Use estimation numbers at the point of balancing trade-offs, not from the start. Don’t open the interview with estimation; use it when justifying a specific decision (e.g. “should we shard?”).
  • INSIGHT: Modern hardware defers the need for sharding and caching much further than older hardware would have. A single PostgreSQL instance comfortably handles a few TB and ~50K queries/s. Don’t over-scale based on outdated mental models.

Reference #