System Design Interview Framework

A systematic 4-step approach to solving any system design problem

25 min readIntermediate
Not Started
Loading...

System design interviews aren't about finding the "perfect" solution—they're about demonstrating your ability to think systematically about complex problems. Alex Xu's 4-step framework provides structure to tackle any system design challenge, from URL shorteners to chat systems.

The key insight: clarify before you design. Most candidates jump straight into architecture without understanding requirements. This framework forces you to ask the right questions, estimate scale, and design incrementally.

The 4-Step Framework

1

Clarify Requirements & Scope

Never assume you understand the problem. Ask clarifying questions to define functional and non-functional requirements.

Functional Requirements

  • • What features must the system support?
  • • Who are the users and how do they interact?
  • • What are the core use cases?
  • • Any features we can skip for now?

Non-Functional Requirements

  • • How many users? (scale)
  • • Performance expectations? (latency)
  • • Availability requirements? (uptime)
  • • Consistency vs availability trade-offs?
2

Back-of-Envelope Estimation

Estimate scale to determine if you need a simple monolith or distributed system. Numbers guide architecture decisions.

Key Calculations

Read/Write Ratio
100M DAU → ~1K QPS reads, ~100 QPS writes
Storage
1KB per record × 1B records = 1TB data
Bandwidth
1K QPS × 1KB = 1MB/s network traffic
Memory Cache
80/20 rule → Cache 20% hot data
3

High-Level Design

Start simple, then iterate. Draw major components and how they communicate. Focus on data flow.

Design Progression

  1. Start with basic client-server architecture
  2. Add load balancer for multiple servers
  3. Add database layer (SQL/NoSQL choice)
  4. Add caching layer (Redis/Memcached)
  5. Add CDN for static content
  6. Consider message queues for async processing
4

Deep Dive & Scale

Identify bottlenecks and design for scale. Address specific challenges that arise from your requirements.

Scale Bottlenecks

  • • Database: Sharding, read replicas
  • • CPU: Horizontal scaling, microservices
  • • Network: CDN, edge caching
  • • Memory: Distributed caching

Additional Considerations

  • • Monitoring & logging
  • • Error handling & recovery
  • • Security & compliance
  • • Deployment & CI/CD

Time Management (45-60 minutes)

10
minutes
Requirements
10
minutes
Estimation
15
minutes
High-Level
15
minutes
Deep Dive

Pro tip: Save 5-10 minutes for wrap-up and questions. If you're running behind, prioritize getting through all 4 steps at a high level rather than going deep on step 3.

Common Interview Mistakes

❌ Jumping to Solutions

Starting with "I'll use microservices and Kafka" without understanding requirements.

❌ Over-Engineering

Designing for Google scale when the requirement is 1000 users.

❌ Silent Design

Drawing architecture without explaining your reasoning and trade-offs.

✅ Ask Questions

"How many users do we expect?" "What's more important: consistency or availability?"

✅ Start Simple

Begin with basic architecture, then evolve based on scale requirements.

✅ Think Out Loud

Explain your thought process: "I'm choosing PostgreSQL because we need ACID properties."

Success Factors

Structured Thinking

Follow the framework. Even if you don't finish, showing systematic approach impresses interviewers.

Communication

System design is about collaboration. Engage the interviewer as a teammate, not an examiner.

Trade-off Analysis

Acknowledge trade-offs explicitly. "I'm choosing speed over consistency because..."

Practice Template

Use this checklist for any system design problem to ensure you cover all bases:

Step 1 & 2: Requirements & Scale

  • ☐ Core features defined
  • ☐ Users & QPS estimated
  • ☐ Storage requirements calculated
  • ☐ Read/write ratio determined
  • ☐ Performance SLAs clarified

Step 3 & 4: Design & Scale

  • ☐ High-level architecture drawn
  • ☐ Database choice justified
  • ☐ Caching strategy defined
  • ☐ API design sketched
  • ☐ Scaling bottlenecks addressed

📝 System Design Framework Quiz

1 of 6Current: 0/6

Which step of the system design framework should you spend the MOST time on during a 45-minute interview?