System design interview checklist
- Clarify the top three user actions and explicit exclusions.
- Rank latency, availability, consistency, durability, security, and cost.
- Estimate peak traffic, storage growth, and bandwidth.
- Define important APIs and data entities.
- Draw one complete request path before adding optimizations.
- Deep-dive into the system's unique bottleneck.
- Discuss failure modes, observability, and alternatives.
- Finish by summarizing decisions and trade-offs.
Prefer a complete simple design over an impressive collection of components that do not connect.