The 5-step framework
| Step | Time (45 min) | Output |
|---|---|---|
| 1. Requirements | 5 min | Functional features (3–5) + non-functional: scale, latency, availability, consistency |
| 2. Estimates | 5 min | QPS (read vs write), storage/yr, bandwidth — only what changes the design |
| 3. API + data model | 5 min | A few endpoints; core entities and how they're keyed |
| 4. High-level design | 15 min | Boxes & arrows for the happy path, end to end |
| 5. Deep dives | 15 min | Bottlenecks, failure modes, scaling the hottest path, trade-offs |
Most common mistake: jumping to step 4 and drawing Kafka before knowing whether the system is read-heavy or write-heavy.