foundations
Back-of-the-envelope: from DAU to peak RPS
7 min read
Fully authored
Numbers before diagrams. How to derive traffic, storage, bandwidth, and cache from a headline DAU number in under 3 minutes.
Numbers before diagrams. Every good design starts by anchoring the scale with a headline DAU number, then deriving RPS, storage, and bandwidth in that order. Practice this until you can do it in under three minutes.
Interactive calculator
DAU10.0M
Requests per user per day10
Peak multiplier3x
Row size (bytes)1.0 KB
Retention days365d
Avg RPS
1K
Peak RPS
3K
Writes/day
1.0M
Storage
348 GB
Bandwidth
3.4 MB/s
The formula
avg_rps = DAU × req_per_user / 86400
peak_rps = avg_rps × peak_multiplier // 2–5× is normal
storage_bytes = writes_per_day × row_size × retention_days
bandwidth_bytes_per_sec = peak_rps × avg_response_size
hot_cache_bytes = working_set_size × replication_factor
Rules of thumb
- 1 million requests/day ≈ 12 RPS avg
- 100 million requests/day ≈ 1.2K RPS avg, peak ~5K RPS
- 1 billion requests/day ≈ 12K RPS avg, peak ~50K RPS
- Peak is 2–5× avg for consumer apps; ~2× for enterprise SaaS; up to 10× for events (ticket drops, live streams)
- A modern Postgres primary comfortably handles ~10K QPS read, ~1K QPS write
- Redis single node ~100K QPS, cluster ~1M+ QPS
- Kafka broker ~100 MB/s per partition, ~1 GB/s per broker with tuning
In the interview
State your assumptions loudly before doing the arithmetic. If the interviewer pushes back, adjust and redo — that's exactly the muscle they're testing. Don't bury the numbers in your head; write them on the whiteboard so you can point at them when you make architectural choices.
Practice what you just read
Every foundation concept has a companion quiz to close the loop.