System Design
Overview
System design connects user needs, technical constraints, and operational reality into a workable solution.
Why It Matters
The right design avoids both overbuilding and fragile shortcuts.
Core Concepts
- Throughput, latency, reliability, and cost all matter.
- Boundaries create ownership.
- Failure modes should be explicit.
Mental Models
Design from the outside in. Start with user flow, then data flow, then failure handling.
Best Practices
- Define the success criteria.
- Model the critical path.
- Decide how the system fails and recovers.
Common Mistakes
- Designing for hypothetical scale only.
- Ignoring observability and rollout.
- Making the happy path the only path.
Trade-offs
System designs are always partial. The real question is whether the design is good enough for now and easy enough to extend.
Decision Framework
| Constraint | Design response |
|---|---|
| High latency | Cache, batch, or precompute |
| High risk | Add rollback and observability |
| Many consumers | Clarify ownership and contracts |
Examples
- A feature flag can reduce risk for a staged rollout.
- A queue can remove slow work from the request path.
Checklists
- Is the critical path clear?
- Are failure modes considered?
- Is the design observable?
Senior Engineer Notes
Senior engineers design for operations as well as delivery. A system that cannot be observed or rolled back is harder to trust.