What to identify before drawing boxes
corebeginnerBefore drawing a single box in a design, twelve questions should already have answers: who uses it, from what client, doing what, how much data, for how long, from where, how much traffic, and under what SLA, security and legal constraints.
Think of it as
A component diagram drawn before these questions are answered is a guess wearing the costume of a design. Every one of the twelve changes what the "right" architecture actually is.
What we're doing: Work through the twelve-question checklist against one real feature request, showing how much of the design the answers already decide.
- 3
- Read-heavy already argues for a cache-aside pattern and read replicas — before any component diagram exists.
- 4
- 500M total notifications at steady growth already argues against a design that scans every row on read.
- 5
- A predictable, twice-daily burst argues for autoscaling tuned to that shape, not a flat fleet sized for average load.
- 7
- This single line rules out any design where notifications are looked up by anything other than user id — a full-table scan cannot hold 200ms at this volume.
Why this works: Each answer above already narrows the design space before a single box is drawn. Skipping the clarification step does not remove these constraints — it just means the first architecture sketched has to guess at them, and often guesses wrong.
Jumping straight to "we'll use Postgres and Redis"
Wrong
Better
What you see: The chosen storage and caching layer turn out to be wrong for the actual read/write ratio or data volume, and the rest of the design session is spent justifying a choice that was never grounded in the requirements.
Why: Naming a specific technology before the twelve questions are answered is designing from familiarity, not from requirements — the same failure mode L103 in this roadmap calls "starting with technologies instead of requirements."
- Who and how
- Users — who is served
- Clients — web, mobile, API
- Use cases — real workflows
- Shape and scale
- Read/write pattern — which dominates
- Data volume — how much, how fast
- Retention — how long kept
- Traffic
- Regional scope — one region or many
- Traffic shape — steady or bursty
- Peak traffic — the number to survive
- Bounds
- SLAs — availability, latency targets
- Security — auth, encryption, access
- Regulatory — residency, compliance
The twelve questions, and what each one decides
Together
Remember: Twelve questions before any box is drawn: users, clients, use cases, read/write, volume, retention, region, traffic shape, peak, SLA, security, regulatory.
See also: traffic shape · what is system design

