27 Curated System Design Interview Questions

Every design below has an animated diagram, step-by-step walkthrough, component swap, and in-browser stress simulator. Click any title to read the full walkthrough, or open the live interactive version.

These are the same problems asked at Google, Meta, Amazon, Netflix, Apple, Uber, Stripe, and Airbnb. Every page has a step-by-step walkthrough, capacity estimates, and an in-browser stress simulator — no other free resource combines all three.

New here? Start with URL Shortener (classic warm-up), then WhatsApp Messaging (concurrency and fan-out), then Payment System (ACID + idempotency). Or follow the structured 8-week roadmap →

Ad Click Event Aggregation (Real-time)

Alex Xu, System Design Interview Vol 2, Chapter 6; Flink docs; ClickHouse docs · 10 components · 3 operations

Problem: Design a real-time ad click event aggregation service that powers advertiser reporting and near-real-time budgeting.

Key components: Ad Client (SDK / Pixel), Edge Ingest Service, Click Kafka, Stream Aggregator (Flink), OLAP Store (ClickHouse)

Read full walkthrough → · Open in app

Consistent Hashing for a Distributed KV Cluster

Alex Xu, System Design Interview Vol 1, Chapter 5; Karger et al. 1997 'Consistent Hashing and Random Trees'; Amazon Dynamo paper (DeCandia et al. 2007) · 8 components · 3 operations

Problem: Design a distributed KV cluster that spreads keys across N shards, routes requests to the owning shard in O(1), replicates for durability, and rebalances with minimal key movement when nodes are added or removed.

Key components: Client SDK, Coordinator, Consistent-Hash Ring, Shard A (Storage Node), Shard B (Storage Node)

Read full walkthrough → · Open in app

Digital Wallet

Alex Xu, System Design Interview Vol 2, Chapter 12 · 10 components · 3 operations

Problem: Design a digital wallet (PayPal/Venmo-style) that supports top-up from bank, ACID peer-to-peer transfers, and fast balance reads.

Key components: Client (Mobile / Web), Load Balancer, Wallet API, Auth Service, Balance Service

Read full walkthrough → · Open in app

Distributed Email Service (Gmail-style)

Alex Xu, System Design Interview Vol 2, Chapter 8 · 11 components · 3 operations

Problem: Design a distributed email service like Gmail supporting SMTP send/receive, spam filtering, full-text search, and attachments.

Key components: Client (Web / Mobile / IMAP), Load Balancer, Mail Submission API, Spam / Anti-abuse Filter, Outbound SMTP Relay (MTA)

Read full walkthrough → · Open in app

Distributed Key-Value Store (Dynamo-style)

Alex Xu, System Design Interview Vol 1, Chapter 6 (pages 87–109); Dynamo paper (DeCandia et al. 2007); Cassandra & BigTable architectures. · 8 components · 3 operations

Problem: Design an always-writable, horizontally scaled key-value store with tunable consistency: N replicas, configurable W/R quorums, vector-clock conflict resolution, gossip membership, and anti-entropy repair.

Key components: Client SDK, Coordinator, Consistent-Hash Ring, Replica 1 (Storage Node), Replica 2 (Storage Node)

Read full walkthrough → · Open in app

Distributed Message Queue (Kafka-style)

Alex Xu, System Design Interview Vol 2, Chapter 4 · 9 components · 3 operations

Problem: Design a distributed, durable, high-throughput message queue like Apache Kafka.

Key components: Producer Client, Bootstrap Load Balancer, Broker (Partition Leader), Partition Log (on-disk), Replica Broker (Follower)

Read full walkthrough → · Open in app

Distributed Rate Limiter

Alex Xu, System Design Interview Vol 1, Chapter 4 · 10 components · 4 operations

Problem: Design a distributed rate limiter that protects APIs at 1M+ RPS with per-user / per-IP / per-API quotas.

Key components: Client (3rd-party / internal), Load Balancer, API Gateway, Rate Limiter Middleware, Redis (Token Bucket Store)

Read full walkthrough → · Open in app

Distributed Unique ID Generator (Snowflake)

Alex Xu, System Design Interview Vol 1, Chapter 7 (pages 110–118); Twitter Snowflake blog (2010) · 6 components · 3 operations

Problem: Design a system that generates globally unique, roughly time-sortable 64-bit IDs at very high throughput across many machines, without a central bottleneck on the write path.

Key components: Client (Service or User Request), Application Server, Snowflake Generator (in-process), Coordinator (ZooKeeper / etcd), ID Usage DB (downstream consumer)

Read full walkthrough → · Open in app

Google Drive (Cloud File Storage)

Alex Xu, System Design Interview Vol 1, Chapter 15 · 12 components · 5 operations

Problem: Design a cloud file storage and sync service like Google Drive, Dropbox, or OneDrive.

Key components: Client (Desktop Sync / Web / Mobile), Load Balancer, Drive API (Metadata Service), Metadata DB, Metadata Cache

Read full walkthrough → · Open in app

Google Maps

Alex Xu, System Design Interview Vol 2, Chapter 3 · 10 components · 3 operations

Problem: Design a web-scale map service that renders tiled maps, searches places, and computes routes from A to B.

Key components: Client (Browser / Mobile SDK), CDN Edge (Tile POP), Load Balancer, Maps API Gateway, Tile Service

Read full walkthrough → · Open in app

Hotel Reservation System

Alex Xu, System Design Interview Vol 2, Chapter 7; Stripe idempotency docs; OpenTable and Booking.com engineering blogs · 9 components · 4 operations

Problem: Design a hotel reservation system (Booking.com / Expedia / direct hotel chain) that takes rooms from search, through hold, payment, and confirmed booking, without overselling.

Key components: Client (Web / Mobile), Load Balancer, Reservation API, Search Service, Inventory Service

Read full walkthrough → · Open in app

Metrics Monitoring and Alerting (Prometheus-style)

Alex Xu, System Design Interview Vol 2, Chapter 5; Prometheus docs; Grafana docs · 9 components · 3 operations

Problem: Design a metrics monitoring and alerting system for a fleet of ~10,000 servers and thousands of services, Prometheus/Grafana-style.

Key components: Operator Browser, Instrumented App, Push Gateway, Scrape Collector, Metrics Kafka

Read full walkthrough → · Open in app

Nearby Friends

Alex Xu, System Design Interview Vol 2, Chapter 2 · 9 components · 3 operations

Problem: Design a system like Facebook Nearby Friends / Snap Map that shows you which of your friends are nearby in near-real-time.

Key components: Client (iOS / Android), Connection Load Balancer, WebSocket Server, Location Publisher, Redis GEO

Read full walkthrough → · Open in app

News Feed (Facebook / Instagram style)

Alex Xu, System Design Interview Vol 1, Chapter 11 · 11 components · 4 operations

Problem: Design a news feed system that shows a user the latest posts from people they follow.

Key components: Client (iOS / Android / Web), Load Balancer, News Feed Service, Post Service (Feed Publishing), Post Store

Read full walkthrough → · Open in app

Notification System (Push / SMS / Email)

Alex Xu, System Design Interview Vol 1, Chapter 10; Apple Push Notification service docs; Twilio Programmable Messaging SLAs; SendGrid reliability guide · 12 components · 3 operations

Problem: Design a system that delivers notifications across push (APNs/FCM), SMS, and email channels at scale, with reliable retries, rate limiting, per-user preferences, and minute-scale latency for transactional messages.

Key components: Services / Clients (producers), Notification Servers, Cache (tokens / templates / settings), Notification DB (users / devices / settings / templates), Rate Limiter

Read full walkthrough → · Open in app

Payment System

Alex Xu, System Design Interview Vol 2, Chapter 11 · 10 components · 4 operations

Problem: Design a payment system that charges customers via external PSPs (Stripe/Braintree), keeps an auditable ledger, supports refunds, and reconciles with the PSP daily.

Key components: Client (Merchant checkout / mobile app), Load Balancer, Payment Service API, Idempotency Store (Redis), Payment Orchestrator

Read full walkthrough → · Open in app

Proximity Service (Yelp-style 'Nearby')

Alex Xu, System Design Interview Vol 2, Chapter 1 · 8 components · 3 operations

Problem: Design a proximity / 'find businesses near me' service like Yelp, Google Maps nearby, or DoorDash restaurant search.

Key components: Client (Mobile App / Web), Load Balancer, Proximity API, Location Service, Geohash Index

Read full walkthrough → · Open in app

Real-time Gaming Leaderboard

Alex Xu, System Design Interview Vol 2, Chapter 10 · 9 components · 3 operations

Problem: Design a real-time global leaderboard for a mobile game: top-100 worldwide, top-K by region, and a given player's rank with surrounding neighbors, all updated in near real-time.

Key components: Game Client, Load Balancer, Score Ingest API, Leaderboard Read API, Redis Sorted Set (ZSET)

Read full walkthrough → · Open in app

S3-like Object Storage

Alex Xu, System Design Interview Vol 2, Chapter 9 · 9 components · 3 operations

Problem: Design a distributed, highly durable object storage service like Amazon S3 supporting PUT / GET / DELETE of arbitrary-size objects with versioning.

Key components: Client (SDK / CLI / Browser), Load Balancer, S3 REST API, Auth Service, Metadata Service (Index)

Read full walkthrough → · Open in app

Scale from Zero to Millions of Users

Alex Xu, System Design Interview Vol 1, Chapter 1 · 11 components · 3 operations

Problem: Evolve a single-server web app into a multi-tier, multi-region architecture that serves millions of users with low latency and high availability.

Key components: Client (Browser / Mobile), DNS (Route53 / Cloud DNS), CDN (CloudFront / Cloudflare), Load Balancer, Web Tier (Stateless App Servers)

Read full walkthrough → · Open in app

Search Autocomplete (Type-Ahead)

Alex Xu, System Design Interview Vol 1, Chapter 13 · 11 components · 5 operations

Problem: Design a top-k search autocomplete system that returns the 5 most popular queries for a typed prefix within 100ms.

Key components: Client (Browser / Mobile), Load Balancer, API Servers, Filter Layer, Trie Cache

Read full walkthrough → · Open in app

Stock Exchange

Alex Xu, System Design Interview Vol 2, Chapter 13 · 9 components · 4 operations

Problem: Design a stock exchange with a matching engine that processes limit orders, a market-data publisher that broadcasts book updates at 100K ticks/s, and a batched clearing/settlement pipeline.

Key components: Client / Broker, Load Balancer, Order Gateway, Order Validation / Risk, Matching Engine (per-symbol shard)

Read full walkthrough → · Open in app

Twitter Trending Topics (Streaming Analytics)

Streaming analytics — Kafka + Flink + Count-Min Sketch (Cormode & Muthukrishnan, 2005) · 7 components · 3 operations

Problem: Design a real-time trending topics / hashtag system over a 500M-tweets/day firehose.

Key components: Client UI, Tweet Ingest API, Tweet Stream (Kafka), Stream Processor (Flink), CMS + Top-K State

Read full walkthrough → · Open in app

URL Shortener

Alex Xu, System Design Interview Vol 1, Chapter 8 (pages 119–131) · 7 components · 3 operations

Problem: Design a URL shortener like TinyURL or bit.ly.

Key components: Client (Browser / Mobile), Load Balancer, Shortener API, Unique ID Generator (base62 conversion), Redis Cache

Read full walkthrough → · Open in app

Video Streaming (YouTube-style)

Alex Xu, System Design Interview Vol 1, Chapter 14 · 12 components · 5 operations

Problem: Design a video upload, transcoding, and streaming platform like YouTube.

Key components: Client (Web / Mobile / TV), CDN Edge, Load Balancer, Video API, Metadata DB

Read full walkthrough → · Open in app

Web Crawler

Alex Xu, System Design Interview Vol 1, Chapter 9; 'Mercator: A Scalable, Extensible Web Crawler' (Heydon & Najork, 1999); Google 'Crawling and Indexing' docs · 11 components · 3 operations

Problem: Design a polite, scalable web crawler that ingests billions of URLs, respects robots.txt, and avoids both URL-level and content-level duplicates.

Key components: Seed URLs, URL Frontier (priority queue), HTML Downloader, DNS Resolver + Cache, Content Parser

Read full walkthrough → · Open in app

WhatsApp-style Messaging

Alex Xu, System Design Interview Vol 1, Chapter 12 · 12 components · 6 operations

Problem: Design a 1-to-1 and small group chat system (up to 100 members) with online presence, multi-device sync, and push notifications.

Key components: Client (iOS / Android / Web), Load Balancer, API Servers (stateless), Service Discovery (ZooKeeper), Chat Servers (stateful WebSocket)

Read full walkthrough → · Open in app