System Design Interview Questions + 10 Walkthroughs

System design interview questions with a clear framework, building blocks, capacity estimates, and 10 concise practice walkthroughs. Reviewed September 2026.

Last updated 2026-10-01.

System design interview questions ask you to architect a product under vague requirements, then defend trade-offs. Exponent frames a typical session as 45–60 minutes. Indeed and prep platforms like DesignGurus, ByteByteGo, and Hyring repeatedly surface the same families of prompts: TinyURL, Instagram feed, chat, crawler, rate limiter, notifications, and related variants. What searchers usually need is not another giant list. They need a repeatable answer framework, core building blocks, and worked answers they can adapt under pressure. This guide gives you that kit.

This page was reviewed on October 1, 2026.

TL;DR

  • Use one framework every time: clarify → estimate → API → high-level design → deep dive → trade-offs.
  • Non-functionals like latency, availability, and consistency drive architecture choices.
  • Master building blocks: load balancers, caches, databases, queues, CDNs, and sharding.
  • Practice high-frequency prompts: URL shortener, news feed, chat, rate limiter, crawler, notifications, recommendations, search, file storage, and video streaming.
  • Talk trade-offs out loud. Interviewers score reasoning more than a perfect diagram.

What a system design interview is

You receive an open-ended prompt like “Design a URL shortener” or “Design a notification system.” You define requirements, sketch components, discuss data flow, scaling, and failure modes. Coding is usually secondary. APIs, schemas, and bottlenecks matter more.

Pair this round with coding and behavioral prep from interview questions and answers and behavioral interview questions.

The answer framework (use this every time)

Adapted from common prep structures, including Exponent’s five-step arc:

Phase Minutes (approx.) What to do
1. Clarify 5–8 Functional + non-functional requirements; out of scope
2. Estimate 3–5 Users, QPS, storage, bandwidth, read/write ratio
3. API 2–4 Sketch key endpoints, events, or contracts
4. High-level 8–12 Boxes and arrows: clients, APIs, services, data stores
5. Deep dive 15–20 Hottest paths: schema, consistency, caching, sharding
6. Trade-offs 5–8 Bottlenecks, failure modes, what you’d do with more time

Clarifying questions cheat sheet

Who are the users? Read vs write ratio?
Mobile / web / both? Global traffic?
Consistency needs (strong vs eventual)?
Latency targets? Availability target?
Must we support search, analytics, admin tools?
What is explicitly out of scope for this interview?

State assumptions aloud when the interviewer stays vague.

Core non-functional requirements

Concern Plain meaning Levers
Scalability Grow with load Horizontal scale, partitioning
Availability Stay up when parts fail Replication, failover, graceful degradation
Latency Time to respond Caching, CDNs, efficient queries
Throughput Requests or events per second Async processing, batching
Consistency How fresh or agreed data is Quorums, transactions, eventual sync
Durability Data not lost Replication, backups, write-ahead logs

You rarely optimize all at once. Name the priority for this product.

Essential building blocks

Load balancer. Distributes traffic across app instances. Health checks remove bad nodes.

Cache (Redis/Memcached). Speeds hot reads. Decide TTL, invalidation, and stampede protection.

Database. SQL for relational integrity and flexible queries. NoSQL when access patterns are fixed and scale is extreme. Many designs use both.

Object storage. Blobs like images and videos live outside the primary DB.

CDN. Edge caches for static and some dynamic content. Cuts latency globally.

Message queue / pub-sub. Decouples producers and consumers. Essential for feeds, notifications, fan-out, and retries.

Search index. Useful when DB LIKE queries will not scale.

Rate limiter. Protects APIs from abuse using token bucket or sliding window patterns.

For production architecture patterns, skim Google Cloud Architecture Center, AWS Well-Architected, and Cloudflare Learning Center.

Capacity estimation (back-of-envelope)

Interviewers care that you try:

DAU × actions_per_user × bytes_per_action ≈ daily write volume
peak QPS ≈ average QPS × peak multiplier (often 2–5×)
storage ≈ daily bytes × retention_days × replication_factor

Round aggressively. “About 10K QPS at peak” is better than fake precision.

Worked answer template you can reuse

Use this skeleton for almost every prompt:

1) Clarify
- Core user actions
- Non-functional priorities
- Out of scope

2) Estimate
- DAU / MAU
- Peak QPS
- Read/write ratio
- Storage growth

3) API / contracts
- 2–4 core endpoints or events

4) High-level design
- Entry point
- Core services
- Primary data stores
- Cache / queue / CDN boundaries

5) Deep dive
- Data model
- Scaling strategy
- Consistency model
- Failure handling

6) Trade-offs
- Why this design first
- What breaks at 10× scale
- What you would change next

10 common walkthroughs

Below are 10 concise walkthroughs using the same skeleton: clarify → estimate → API → trade-offs. If you practice these with rough diagrams, you will cover a large share of real interview prompts from Exponent, DesignGurus, ByteByteGo, Hyring, and common company loops.

1) URL shortener (TinyURL)

Clarify. Create short links, redirect to long URLs, optional custom aliases, expiry, basic analytics.

Estimate. 100M new URLs/month. Reads dominate writes, maybe 100:1. Metadata per record is small.

API.

POST /api/v1/urls { long_url, custom_alias?, ttl? } -> { short_code }
GET  /{short_code} -> 302 Location: long_url

High-level.

Client -> LB -> URL Service -> DB
                    |
                  Cache
                    |
               Event Queue -> Analytics

Trade-offs. Base62 over sequential IDs is simple and compact. Cache hot redirects heavily. Analytics should be async.

2) News feed (Instagram-style)

Clarify. Follow graph, reverse chronological feed first, media attachments, celebrities with huge fanout.

Estimate. Reads far exceed writes. Peak feed reads can be many times write volume.

API.

POST /posts
GET  /feed?cursor=...
POST /follow/{user_id}

High-level.

Client -> API Gateway
            |-> Post Service -> DB
            |-> Graph Service -> DB
            |-> Feed Service -> Cache
Post events -> Queue -> Fanout Workers
Media -> Object Storage -> CDN

Trade-offs. Fan-out on write is fast for readers but expensive for celebrity posts. Hybrid push/pull is common.

3) Chat / messaging

Clarify. 1:1 and small groups, delivery receipts, offline storage, push notifications for offline users.

Estimate. Write-heavy compared with many social products. Need low latency and durable history.

API / protocol.

WS /connect
SEND_MESSAGE { conversation_id, body, client_msg_id }
ACK_MESSAGE  { message_id, status }
GET /conversations/{id}/messages?cursor=...

High-level.

Clients <-> WebSocket Gateway -> Message Service -> Message Store
                           |-> Presence Service
                           |-> Queue -> Push Notification Service

Trade-offs. Usually at-least-once delivery plus idempotency. Ordering is easier per conversation than globally.

4) API rate limiter

Clarify. Per API key, distributed, approximate is acceptable, low added latency.

Estimate. Every incoming request hits the limiter, so it must scale with gateway traffic.

API.

checkLimit(api_key, route) -> allow/deny, retry_after

High-level.

Client -> API Gateway -> Rate Limiter -> App
                        |
                      Redis

Trade-offs. Sliding window is intuitive but more expensive. Token bucket is simpler and common in practice.

5) Web crawler

Clarify. Crawl public web pages, respect robots.txt, deduplicate URLs, support recrawl.

Estimate. Massive URL volume, network-bound fetches, large storage footprint.

API / contracts.

enqueue(url)
fetch(url) -> html
extract(html) -> links

High-level.

Seed URLs -> Frontier Queue -> Crawl Workers -> Document Store
                              |-> Parser -> New URLs -> Dedup Store
                              |-> robots/politeness scheduler

Trade-offs. Need host-based politeness to avoid abuse. URL dedup can use hashes or Bloom filters with false positives.

6) Notification system

Clarify. In-app, email, push, SMS. User preferences matter. Retry failures. Avoid duplicate sends.

Estimate. Burst traffic from product events. Delivery providers can throttle.

API / events.

UserEvent { user_id, type, payload }
SendNotification { channel, template_id, user_id }

High-level.

Product Event -> Queue -> Notification Service
                        |-> Preference Service
                        |-> Template Service
                        |-> Channel Workers -> Providers
                        |-> DLQ

Trade-offs. Strong consistency is less important than reliable eventual delivery. Idempotency keys prevent duplicate sends.

7) Recommendation system

Clarify. Start with “people may also like” or content recommendations, not full ads ranking.

Estimate. Read-heavy online serving plus batch/offline computation.

API.

GET /recommendations?user_id=...&context=home

High-level.

User Events -> Data Pipeline -> Feature Store / Offline Jobs
Client -> Rec Service -> Candidate Gen -> Ranker -> Cache

Trade-offs. Start simple with popularity + collaborative signals. Better to explain fallback logic than overclaim ML complexity.

8) Search autocomplete

Clarify. Prefix suggestions, low latency, typo tolerance optional, language scope limited.

Estimate. Very high read QPS, tiny payloads, freshness can be eventual.

API.

GET /autocomplete?q=iph

High-level.

Client -> API -> Autocomplete Service -> In-memory Trie / Search Index
                                 \-> Cache

Trade-offs. Precomputed tries are fast but need rebuild strategies. Search index is more flexible but may add latency.

9) Dropbox / file storage

Clarify. Upload, download, folders, sharing links, versioning optional, large-file chunking.

Estimate. Heavy bandwidth, large object storage, metadata much smaller than blobs.

API.

POST /files/initiate-upload
PUT  /files/{upload_id}/chunk
POST /files/{upload_id}/complete
GET  /files/{file_id}/download

High-level.

Client -> API -> Metadata Service -> Metadata DB
          |-> Upload Service -> Object Storage -> CDN

Trade-offs. Store blobs in object storage, not DB. Chunked upload improves retries and resumability.

10) Video streaming platform

Clarify. Upload video, transcode multiple resolutions, stream globally, basic view counts.

Estimate. Huge storage and outbound bandwidth. Uploads are low QPS but expensive to process.

API.

POST /videos
GET  /videos/{id}/manifest
GET  /videos/{id}/segments/{n}

High-level.

Uploader -> API -> Object Storage -> Transcode Queue -> Workers
Viewer   -> CDN -> Streaming Service -> Metadata DB

Trade-offs. Precompute renditions for reliable playback. CDN is central to cost and latency control.

Two classic questions in a bit more depth

Classic question 1: Design a URL shortener

Clarify. Create short links, redirect to long URLs, custom aliases, expiry, and maybe analytics.

Estimate. 100M new URLs/month is roughly 40 writes/sec average. Reads dominate.

APIs.

POST /api/v1/urls { long_url, custom_alias?, ttl? } -> { short_code }
GET  /{short_code} -> 302 Location: long_url

Deep dive: ID generation.

Approach Pros Cons
Hash long URL Simple Collisions; awkward length control
Base62 encode unique ID Compact, sortable Needs ID generator
Random string + uniqueness check Easy Collision retries

Trade-offs. Cache redirects, expire dead links, and push analytics asynchronously.

Classic question 2: Design a news feed

Clarify. Follow graph, basic reverse-chronological feed first, then ranking if time allows.

High-level. Post service, graph service, feed service, media store, CDN, cache.

Fan-out strategies.

Strategy How When
Fan-out on write Push post IDs to followers’ feed caches Normal users
Fan-out on read Pull from followees at read time Celebrities
Hybrid Push for most; pull for mega-followers Real systems

Trade-offs. Freshness vs compute cost. Celebrity hot keys and cache churn are common pain points.

SQL vs NoSQL, sync vs async

Need Lean toward
Multi-row transactions, joins SQL
Massive simple key lookups KV / wide-column
Spiky fan-out work Async queues
User waiting on response Sync path + careful timeouts
Global low latency reads CDN + regional replicas

How to practice

  1. Pick 10 prompts and timebox 45 minutes each.
  2. Use the same skeleton every time.
  3. Draw on a whiteboard or blank doc and narrate constantly.
  4. After each session, write three trade-offs you missed.
  5. Study failure modes: cache stampede, hot keys, split brain, retry storms, backlog growth.

Career foundation if you are still leveling into these loops: how to become a software engineer.

Common mistakes

  • Jumping to Kafka and Kubernetes before requirements
  • Never estimating scale
  • Ignoring failure and partial outages
  • Silent diagramming for ten minutes
  • Saying “we’ll shard” without naming the shard key
  • Designing for perfect consistency when the product does not need it

Whiteboard checklist

Before you say “done”:

  • [ ] Functional requirements listed
  • [ ] Non-functionals prioritized
  • [ ] Rough QPS and storage stated
  • [ ] API signatures sketched
  • [ ] Primary data model named
  • [ ] Cache and async boundaries explained
  • [ ] One failure scenario walked through
  • [ ] One explicit trade-off articulated

If time remains, discuss monitoring with metrics, logs, traces, and rollback strategy.

Consistency models in one minute

Model User-visible meaning Typical use
Strong Reads see latest committed write Banking, hard inventory constraints
Eventual Reads may lag; converges Social counts, timelines
Read-your-writes A user sees their own updates Profile edits, dashboards

Say which model your design needs. Claiming strong consistency everywhere is usually a red flag.

Leveling hints

Junior loops may stop at a correct high-level design and one decent deep dive. Mid-level candidates should own capacity math and failure modes. Senior and staff candidates should drive trade-offs, multi-region thoughts, migration plans, and operational concerns. Match your depth to the level on the req.

Parlel public activity feed for system design interview questions
Parlel product screenshot: public activity feed. The same public product surface is available to readers and crawlers.

Run it on Parlel

Map system design practice to roles that actually ask for it.

target_roles: SWE / platform / backend postings with system design rounds
prep: 2 timed designs per week from this question set
digest: weekly matching mid/senior eng roles

Digest shape: { role, company, level_signal, matched_skills }. Find targets on /jobs and /explore.

Related reading: work from home jobs no experience, work from home jobs india, thank you email after interview.

Frequently asked questions

What is a system design interview?

A system design interview is usually a 45–60 minute conversation where you architect a system from an open-ended prompt and explain components, data flow, scaling, and trade-offs.

How do you answer system design interview questions well?

Use a repeatable structure: clarify requirements, estimate scale, define APIs, propose a high-level architecture, deep dive on one or two hot paths, then discuss trade-offs and failure modes.

What are the most common system design interview questions?

URL shortener, news feed, chat, rate limiter, crawler, notification system, recommendation system, file storage, and video streaming are among the most common.

Do I need exact capacity numbers?

No. Interviewers usually want order-of-magnitude reasoning, not perfect arithmetic. Clear assumptions matter more than precision.

Do system design interviews require coding?

Usually not a full implementation. Expect APIs, schemas, data flow, bottlenecks, and trade-off discussion. Some companies add light coding or SQL.

How should I practice for system design interviews?

Practice 8–10 recurring prompts, timebox each session, narrate out loud, and review missed trade-offs after every round.

Keep reading

Sources

Keep reading

All Parlel guides

About the author

Dheeraj Kumar, founder building Parlel, an open professional network for people, companies, and jobs. Find him on his Parlel profile.

Next step

Create your profile once, and employers hiring engineers who can design systems can find you between mock interviews.

Get found while you sleep

Publish your profile once -- recruiters, founders, and their agents search it while you sleep. Create your profile.