Answer a system design question by moving through six decisions: define the scope, identify the dominant constraints, estimate what changes the architecture, draw one end-to-end flow, deepen the riskiest component, and test failure behavior. Keep a visible record of requirements and tradeoffs so the design remains coherent as the interviewer adds constraints.
Step 1: Define the problem boundary
Restate the prompt in one sentence, then ask about the users, core actions, scale, latency, availability, consistency, retention, geography, security, and explicit exclusions. Do not spend equal time on every category. Find the two or three constraints that will drive the design.
Separate requirements into three groups:
- Core behavior: what the user must be able to do.
- Quality constraints: how fast, reliable, durable, or consistent it must be.
- Deferred scope: useful features that the round will not cover.
Confirm the list aloud. A correct solution to the wrong scope is still a weak interview answer.
Step 2: Estimate only architecture-changing quantities
Use rough assumptions for active users, requests per second, payload size, read-to-write ratio, and retention. Show units and round the numbers. Then state the implication.
For example: “At 10,000 writes per second and roughly 1 KB per event, raw ingestion is about 10 MB per second before replication. That makes sequential ingestion manageable, but retention and partition distribution need attention.”
If an estimate does not affect a component, partition, or operational choice, move on.
Step 3: Define interfaces and data
Name the main API operations and data entities before choosing infrastructure. For each operation, ask:
- What identifies the user and resource?
- Is the operation synchronous or asynchronous?
- Must retries be safe?
- Which reads require fresh data?
- What is the dominant access pattern?
Choose a data model that supports those operations. Explain the partition key, index, ordering rule, or consistency model that matters most. Avoid choosing a database from brand familiarity alone.
Step 4: Draw one successful path
Trace one request from client to response. Begin with the fewest components possible: client, API boundary, service, storage, and any essential asynchronous processor. Label data movement and ownership.
Only add mechanisms when a requirement calls for them:
| Mechanism | Requirement it may address | Cost to acknowledge |
|---|---|---|
| Cache | Repeated reads or latency | Staleness and invalidation |
| Queue | Load smoothing or async work | Delay, duplication, backlog |
| Replication | Read scale or availability | Consistency and failover |
| Partitioning | Data or throughput limit | Hot keys and rebalancing |
| CDN | Geographic static/media delivery | Invalidation and origin behavior |
The interviewer should be able to point to every box and ask why it exists.
Step 5: Deep-dive where the design is most fragile
Choose one or two areas rather than discussing everything superficially. A feed design may need fan-out and ranking depth. A chat system may need ordering and offline delivery. A job platform may need leasing, retries, and idempotency.
For the deep dive, connect four statements:
- The requirement or risk.
- The chosen mechanism.
- The main alternative.
- The tradeoff and revisit condition.
This makes judgment visible. “Use Kafka” is a label; “partition the event stream by conversation to preserve per-conversation ordering, accepting uneven load for very active conversations” is a design decision.
Step 6: Test failure and evolution
Walk the critical path under failure. Ask what happens when a dependency times out, a retry duplicates a write, a partition becomes hot, a queue grows faster than consumers can drain it, or a region becomes unavailable.
Discuss observability and recovery: which metric moves first, which alert fires, what degrades, how operators contain the fault, and how data is reconciled. Then introduce one future change—ten times the traffic, stricter deletion, another region—and explain which boundary moves.
AWS’s Well-Architected Framework groups reviews around operations, security, reliability, performance, cost, and sustainability. Use those areas as a coverage check, not a requirement to force every topic into every answer.
How should you manage interview time?
For a 45-minute design conversation, a practical starting allocation is five minutes for scope, five for scale and interfaces, ten for the high-level path, fifteen for deep dives, and five for failure and summary. Leave slack for interviewer questions.
Adjust to the conversation. If the interviewer redirects you, acknowledge the change and update the design. Collaboration is part of the signal.
Company-specific expectations may differ. The Meta E4 guide emphasizes adapting this framework to Meta’s design conversation, while the Amazon L5 guide adds operational ownership.
Use AI as a practice critic, not a script
During mock interviews, AI can inject new constraints, identify contradictions, or play the interviewer. Ask it for one challenge at a time. Then defend or revise the decision in your own words.
For a structured assistance workflow, see how to use an AI assistant in a system design interview. In a real interview, use any assistant only when the employer explicitly permits it.
Finish with a defensible summary
Close with the primary user flow, the constraint you optimized for, the most important design choice, its cost, and the next validation step. A good system design answer is not the largest diagram. It is a coherent set of decisions that can survive questions and changing requirements.
Share
Explore with AI
Continue exploring
Related guides
Interview Prep · 8 min read
Amazon L5 System Design Interview Guide
How to prepare for an Amazon L5 or SDE II system design interview using official evaluation areas and a practical answer framework.
Interview Prep · 8 min read
Meta E4 System Design Interview Guide for 2026
A practical Meta E4 design interview guide covering format, evaluation signals, practice prompts, and a repeatable answer structure.
Guides · 8 min read
AI System Design Interview Assistant: Practical Guide
How to evaluate AI help for system design interviews, from mock practice to live requirements, diagrams, tradeoffs, and follow-up questions.