System design is all about making intelligent trade-offs under constraints. These battle-tested rules of thumb help you size systems, estimate capacity, and set performance targets without getting lost in premature optimization. They're not precise formulas—they're engineering heuristics that work in 80% of cases.
The meta-rule: Start with these numbers, measure actual performance, then adjust. Good estimates beat perfect calculations that arrive too late.
⚡ Quick Decision
Start with Cache When:
- • Read-heavy workload (100:1 ratio)
- • Response time under 100ms needed
- • Database queries are expensive
Scale Horizontally When:
- • Single server hits 1000 QPS
- • CPU/memory limits reached
- • Need fault tolerance
Optimize Network When:
- • Global user base
- • Large payloads (>1MB)
- • Mobile users (4G/5G)
💡 For implementation guides and code examples: See our technology deep dives: Redis, Nginx, Observability
Interactive Rule Explorer
Click through different categories to explore the key numbers every system designer should memorize.
Capacity Planning
User load to infrastructure sizing
🧠 Memory Palace
Visual mnemonics to remember the most critical numbers. These stick better than raw data.
🎯 When to Apply These Rules
✅ Use These Rules When:
- • Initial system design and capacity planning
- • System design interviews and estimates
- • Setting performance budgets and SLAs
- • Quick feasibility checks
- • Choosing between architectural options
⚠️ Don't Rely on Them When:
- • Building safety-critical systems
- • You have actual production metrics
- • Extreme performance requirements
- • Unusual access patterns or workloads
- • Final capacity planning (always measure!)