Rules of Thumb

Capacity, tail latency, and back-of-the-envelope math

Not Started
Loading...

These rules of thumb help you make quick estimates during system design interviews and real-world planning. They're not exact formulas, but proven heuristics that experienced engineers use to ballpark capacity, performance, and resource requirements.

Capacity Planning

Start with users and work backwards to infrastructure. The 80/20 rule applies everywhere: 80% of traffic comes from 20% of users, 80% of requests are reads, and 80% of load happens during peak hours.

Capacity Planning
  • 1 million users ≈ ~40,000 daily active users
  • Read/Write ratio is typically 100:1 to 1000:1
  • 1 server can handle ~1000 QPS (queries per second)
  • Cache can improve read performance by 10–100x
  • Database indexing improves query time from O(n) to O(log n)
  • Keep hot data in memory, warm in SSD, cold in HDD
ReadsWrites

Network & Bandwidth

Network is often the bottleneck in distributed systems. These numbers help you estimate bandwidth needs, choose protocols, and understand the performance benefits of CDNs and connection optimization.

Network & Bandwidth
  • 1 Gbps = 125 MB/s theoretical (~100 MB/s practical)
  • CDN reduces latency by 10–100 ms per request
  • HTTP/2 can handle ~100 concurrent streams
  • WebSocket saves ~100 ms per message by keeping a persistent connection
  • gRPC is ~7–10x faster than REST for internal services
Edge hitOrigin
H2 multiplexedSequential

Storage & Databases

Different databases have different performance characteristics. These throughput numbers help you choose the right tool and estimate how many instances you'll need for your expected load.

Storage & Databases
  • MySQL: ~1000 QPS per instance
  • Redis: ~100,000 QPS per instance
  • MongoDB: ~10,000 QPS per instance
  • Elasticsearch: ~5000 QPS for search

Performance Targets

User perception of speed is everything. These response time targets are based on human psychology: 100ms feels instant, 1 second maintains flow, and 10 seconds is the limit before users give up.

Performance Targets
  • Excellent UX: < 100 ms response time
  • Good UX: 100–300 ms response time
  • Acceptable: 300–1000 ms response time
  • Page load target: < 3 seconds
  • API response: < 200 ms for sync calls
Fast (<100ms)Slow
Figures are environment-dependent. Treat them as planning baselines, not guarantees.

📝 Test Your Knowledge

5 questions • Progress: 0/5