Design a home timeline (Twitter/Instagram style) that shows recent posts from accounts a user follows.
How to approach it
Capacity estimation converts product numbers into engineering pressure. Go from daily active users to queries-per-second (QPS ≈ DAU × actions ÷ 86,400, with a 2–3× peak), then to storage (writes/day × payload × retention) and bandwidth (QPS × response size). You only need the order of magnitude — it tells you whether to design for read scaling, write scaling, or storage first.
Assumptions
| Assumption | Value |
|---|---|
| DAU | 200M |
| Posts/user/day | 0.5 |
| Timeline opens/user/day | 10 |
| Avg followers | 200 (max millions) |
Derived numbers
| Quantity | Estimate |
|---|---|
| Write QPS | ~1.2K/s |
| Read QPS | ~23K/s |
| Fan-out writes/post | = follower count |
| Read:write | ~20:1 |
Note
The read:write ratio decides fan-out-on-write vs on-read; celebrity follower counts break naive fan-out.