System Design Space
Knowledge graphSettings

Updated: May 2, 2026 at 3:20 PM

System Design Interviews: A 7-Step Approach

easy

A practical seven-step approach to architecture interviews: clarify requirements, steer the system conversation, and prepare over the long term.

It is not just the question that matters in a system design interview, but the way the conversation is run. The same case can become either a thoughtful investigation of engineering judgment or a chaotic exchange of memorized templates.

This chapter breaks down a seven-step approach in which interviewer and candidate clarify context together, identify what matters most, choose the right depth, and strengthen the solution step by step instead of jumping between disconnected topics.

For preparation, that is especially useful because it teaches not just answer shape but the rhythm of a strong conversation: when to ask, where to go deeper, how to return to priorities, and how to show maturity without unnecessary noise.

Practical value of this chapter

Dialogue control

Steer the conversation with clarifying questions and sync points instead of long monologues.

Depth calibration

Go deep where it changes the decision and stay concise in low-priority implementation areas.

Alternative paths

Prepare one or two realistic alternatives and explain why the primary path is the better fit.

Senior-level signal

Call out risks, operational impact, and evolution plan to demonstrate Staff+ decision quality.

Article

How to prepare for the System Design Interview

A practical walkthrough of preparation strategy and how to conduct the conversation during the round.

Перейти на сайт

System design interviews are rarely something you can prepare for in a couple of rushed evenings. The less time is left before the round, the stronger the temptation to memorize templates instead of building actual architectural judgment. This chapter organizes a practical seven-step approach to the conversation and shows how it can anchor long-term preparation.

A 7-Step Approach to System Design Interviews

This approach grew out of real interviewing practice at T-Bank: first refined through many individual rounds, then scaled across the company. Its value is not that it produces one correct answer, but that it gives the conversation a durable rhythm and keeps the solution coherent under time pressure.

Before talking about preparation, it helps to understand the structure of the round itself. The seven steps below move the discussion from problem framing to architecture, risks, and long-term operations.

1

Problem statement

  • Baseline context
  • Functional requirements
  • Non-functional requirements
2

Requirement clarification

  • Core scenarios
  • Key non-functional requirements
  • Basic sizing: users, requests...
3

System boundaries

  • User scenarios
  • Public API
  • Integration contracts
4

Core flows and components

  • Happy path
  • Scaling for NFRs
  • Failures and edge cases
5

Conceptual data model

  • Public API in the diagram
  • Components and storage types
  • Data models
  • Stateful / stateless
6

Technology choices

  • Concrete technologies
  • Capacity planning
  • Failure domains
7

Operations and advanced topics

  • Observability
  • Security
  • Deployment
  • Advanced topics

Below we break down each step and outline what is worth practicing over the long term.

Related chapter

Software Requirements (Wigers)

Requirement levels, identification techniques, prioritization, and change management.

Read chapter

Step 1: Requirement clarification

Requirement clarification sets the direction for the entire conversation. At this stage you align on what the system actually needs to do, which scenarios matter most, and which constraints cannot be ignored. Without that alignment it is easy to produce a polished answer to the wrong problem.

It is especially important to make non-functional priorities explicit: do we need high availability, what latency target is acceptable, and what level of consistency is appropriate for this product context?

Key non-functional requirements

  • High availability — the system should stay reachable 99.9%+ of the time from the user's point of view
  • Scalability — the system should keep working as traffic and data volume grow
  • Performance — for example, p99 latency under 100 ms or another agreed SLO target
  • Durability — data should survive node, disk, and component failures
  • Consistency — the trade between eventual and strong consistency should be deliberate
  • Fault tolerance — the system should continue functioning when parts of it fail

Key tip

Always ask which qualities matter most for this case. You cannot optimize everything at once: a banking product may prioritize correctness and reliability, while a social feed may care more about responsiveness and freshness.

Related chapter

API Gateway

API contracts, routing, limits, and access control at the external perimeter.

Read chapter

Step 2: System boundaries and public API

At this step you define how the outside world interacts with your system. This is the contract between the solution and its clients: end users, mobile apps, or other services.

REST API

A standard choice for public interfaces. It works well for CRUD-style interactions and predictable client flows.

RPC (gRPC)

A strong fit for internal services where efficient transport and strict contracts matter.

Asynchronous messaging

Useful for event-driven integration when clients do not need a synchronous response.

Related chapter

Event-Driven Architecture

Data flows, events, retries, and compensation patterns in distributed systems.

Read chapter

Step 3: Core flows and components

Start with the happy path, then show how the read path and write path behave. Only after that should you move into errors, retries, and fallback behavior. That ordering keeps the conversation readable.

  • Read path — how the system serves data through caches, replicas, and helper services
  • Write path — how data enters the system through validation, queues, logs, and storage
  • Happy path — the primary scenario when the system behaves as expected
  • Exceptional flows — how the system handles failures, retries, and fallback behavior

Related chapter

Guide to Databases

Conceptual data modeling and storage selection for different load patterns.

Read chapter

Step 4: Conceptual data model

Here you define entities and relationships without committing to specific products yet. It is also useful to separate stateful components from stateless ones, because that distinction strongly affects scaling, recovery, and operational cost.

Stateful components

  • Databases
  • Caches with persistence
  • Message queues
  • File storage

Stateless components

  • API servers
  • Background workers
  • Load balancers
  • Gateways

Related chapter

Database Selection Framework

A practical approach to picking storage technologies based on requirements and engineering trade-offs.

Read chapter

Step 5: Technology choices

This is where you move from abstract architecture to concrete products. Interviewers want to hear which trade-offs you see in each option and why they are acceptable in this specific context.

1Databases: PostgreSQL vs MySQL vs MongoDB vs Cassandra
2Caching: Redis vs Memcached vs local cache
3Queues: Kafka vs RabbitMQ vs SQS vs Redis Streams
4Search: Elasticsearch vs Solr vs Meilisearch
5Object storage: S3 vs GCS vs MinIO

Failure domains

Be explicit about what happens when each component fails. What is the blast radius? How does the system degrade? How does it recover? Those questions reveal engineering maturity very quickly.

Related chapter

Design principles for scalable systems

Vertical and horizontal scaling, sharding, and bottleneck management.

Read chapter

Step 6: Scaling

Once the baseline architecture is clear, test whether it still works under 10x, 100x, and 1000x growth. The point is not just to name scaling patterns, but to explain when each of them becomes necessary.

  • Vertical scaling — adding more resources to one machine; simpler, but limited
  • Horizontal scaling — adding more instances; more complex, but far more flexible under growth
  • Data partitioning — splitting data by key, region, or time to reduce pressure on one node
  • Sharding — distributing data across multiple databases or clusters
  • Consistent hashing — reducing redistribution cost when nodes are added or removed

Related chapter

Observability & Monitoring Design

A deeper dive into observability, metrics, logs, traces, and alerting practice.

Read chapter

Step 7: Operations and advanced topics

If time remains, switch to the topics that separate a whiteboard diagram from a living production system: observability, deployment, security, disaster recovery, and how the design evolves over time.

For disaster recovery, it is usually enough to state the RTO you target, the RPO the product can tolerate, and how failover works. That already signals operational maturity without getting lost in a long infrastructure detour.

  • Observability — which metrics, logs, and traces let you understand system health quickly
  • Alerting — which signals deserve alerts and how to avoid drowning in noise
  • Deployment — how blue-green, canary, and feature flags reduce rollout risk
  • Disaster recovery — what recovery targets you set, how backups are organized, and how the system resumes service after an incident
  • Security — how authentication, authorization, and encryption are handled in storage and in transit

Related chapter

How system design interviews are evaluated and how difficulty is calibrated

How interviewers calibrate difficulty and score the quality of the answer.

Read chapter

Tips for a stronger interview

Below is a short list of habits that usually make the round more coherent and help you show the best version of your thinking.

  • Manage the clock — Architecture rounds rarely last longer than an hour, so you need to keep momentum, avoid diving too early into details, and leave time for risks and evolution.
  • Do not design too early — Make sure you understand the problem first. One missing clarification at the start can send the whole answer toward the wrong target.
  • Say your thinking out loud — The interviewer is evaluating not just the final diagram, but also how you get there, which alternatives you consider, and why you make each choice.
  • Show independence — This format gives candidates room to demonstrate engineering maturity. If the interviewer has to drag the conversation forward, the signal becomes much weaker.
  • Listen for probing questions — Those questions often exist to pull you back toward an important constraint or a risk you have not surfaced yet.
  • Be confident about what you know — Do not drift into areas you only know vaguely. It is better to mark the boundary of your certainty and explain the parts you truly understand well.
  • Prepare questions for the interviewer — If time remains, thoughtful questions show interest in the company, the role, and the surrounding engineering environment.

Related chapter

Recommendations for long-term preparation

A detailed long-term plan for building the skills behind each interview step.

Read chapter

Long-term preparation: what to read

For a deeper understanding of system design, professional literature is still one of the best tools. Books provide a foundation that does not go stale in a year and help you build principles rather than memorize stock answers.

Part 4: Interview Sources Overview

A curated set of books on distributed systems, architecture, microservices, DDD, and SRE, with key ideas and practical takeaways for preparation.

Conclusion

Long-term preparation for system design interviews is really about developing engineering judgment, not memorizing ready-made answers. Read books, study real architectures, and practice explaining your decisions out loud.

Use the seven-step approach as a default structure for any architecture round. It helps you keep the conversation coherent, pace the discussion, and make your engineering judgment visible under time pressure.

In the next chapter, we will move to short-term tactics: what to do when the interview is only a week or two away.

Sources and additional materials

Related chapters

Enable tracking in Settings