Alex Xu’s book became almost canonical not because it contains “the right answers,” but because it consistently shows how to build a strong system design interview answer. This chapter treats the book as a practical thinking template rather than a pile of memorized cases.
In real engineering work, it is useful because it reinforces a clear sequence: clarify the problem and the scale first, sketch the overall architecture next, choose the right deep dives after that, and only then walk through trade-offs, risks, and system evolution.
For interview prep, the real value of this chapter is that it shows the core strength of Alex Xu’s book: it gives you a repeatable way to discuss classic cases such as rate limiting, storage design, chat, and search without losing structure halfway through the answer.
Practical value of this chapter
Case rhythm
Reinforces a stable flow: requirements, scale, overall architecture, deep dives, risk, and evolution.
Answer frame
Helps keep the discussion structured from early clarification to the final design rationale.
Engineering trade-offs
Keeps the focus on latency, consistency, cost, and operational complexity.
Case transfer
Provides an answer shape that transfers well to other interview cases and practical design walkthroughs.
Source
System Design Interview Review
Alexander Polomodov's review of Alex Xu's book across both parts of the analysis.
System Design Interview: An Insider's Guide
Authors: Alex Xu, Sahn Lam
Publisher: Independently Published
Length: 276 pages
A practical walkthrough of Alex Xu's book: scaling from one server to large traffic, rough estimation, rate limiting, consistent hashing, and storage design.
Book structure
Scaling, rough estimates, and the answer framework
A set of classic interview-style system design cases
Sources worth using once the overview is no longer enough
1. Scale from Zero to Millions of Users
The chapter walks step by step from a single-server setup to a multi-layer architecture built for heavy traffic. Along that path a load balancer, caching, and a multi-data-center layout all appear quickly — each as an answer to a specific pressure the previous design could no longer absorb.
Key Chapter Topics
Author's takeaways
- Keep web tier stateless
- Build redundancy at every tier
- Cache data as much as you can
- Support multiple data centers
- Host static assets in CDN
- Scale your data tier by sharding
- Split tiers into individual services
- Monitor your system and use automation tools
2. Back-of-the-envelope Estimation
This chapter makes an important point: a strong answer starts with order-of-magnitude thinking, not with a polished diagram.
Powers of two
Latency Numbers
Availability
Recommendation
For fresher latency reference numbers, take a look at rule-of-thumb latency numbers from Google SRE.
3. A Framework for System Design Interviews
The 4-step answer framework is the real backbone of the book: understand the problem, sketch the system, choose the right deep dives, and close with trade-offs plus growth paths.
Understand the Problem
High-level Design
Design Deep Dive
Wrap Up
Rate Limiter
Practical case on traffic-limiting algorithms, counter storage, and failure behavior.
4. Design a Rate Limiter
The first practical task of the book is a rate limiter: how to cap traffic so that it protects the service without quietly degrading the experience for legitimate users.
Rate Limiting Algorithms
Tokens are added at a fixed rate, requests consume tokens
Requests are processed at a constant speed, excess is discarded
Counter of requests in a fixed time window
A sliding log of request timestamps
Hybrid fixed window and sliding log
Reviewer's note
A rate limiter is often less a standalone product and more a building block that reappears inside other systems. That said, the topic becomes non-trivial very quickly in production. For a deeper example, see YARL from Yandex.
5. Design Consistent Hashing
The chapter shows how to spread keys across servers so that adding or removing a node does not force you to rebuild the whole store. Only a fraction of the keys move, which is what makes the approach practical for caches and distributed databases with a shifting node count.
What is Consistent Hashing?
A special type of hashing in which changing the number of servers requires redistribution only n/m keys (where n is the number of keys, m is the number of slots), in contrast to conventional hashing, where almost all keys are redistributed.
Key Concepts
- Hash Ring — the key space is mapped onto a logical ring
- Virtual Nodes — each physical server appears at multiple positions on that ring
- Used in Cassandra, DynamoDB, and other distributed systems
6. Design a Key-Value Store
Here the book moves to a full distributed key-value store and uses it to walk through replication, the trade-off between consistency, availability, and partition tolerance, and the different consistency levels you can tune for.
System requirements
- Key-value pair size < 10 KB
- Ability to store big data
- High availability
- High scalability
- Automatic scaling
- Tunable consistency
- Low latency
CAP Theorem
- CP — the system does not service some requests, but maintains consistency
- AP — the system weakens consistency for the sake of accessibility
- Partition tolerance is required in distributed systems
Consistency Models
Strong Consistency
This is linearizability: each read sees the result of the last completed write, as if there was a single copy of the data.
Weak Consistency
Subsequent readers may not see the latest updates.
Eventual Consistency
Given enough time, all replicas will become consistent.
Additional Chapter Topics
- Tunable Consistency — W + R > N for strong consistency
- Vector Clocks — for causal consistency and conflict resolution
- Failure Detection — heartbeats, pings, gossip protocol
- Anti-entropy — mechanisms for dealing with data discrepancies
- SSTable & LSM Trees — data storage structures
7. Design a Unique ID Generator
An ID generator looks trivial until the extra requirements show up: time ordering, a growing number of nodes, and behavior under failure. The chapter uses it to show how to compare options across several axes at once instead of reaching for the most obvious one.
Requirements
- IDs must be unique
- IDs are numerical values only
- IDs fit into 64-bit
- IDs are ordered by date
- Ability to generate over 10,000 unique IDs per second
Multi-master ReplicationSimple
Each of the k servers generates an ID in steps of k:
- Server 1: 1, k+1, 2k+1...
- Server 2: 2, k+2, 2k+2...
UUIDPopular
128-bit identifier, generated without coordination.
Ticket ServerCentralized
A single service generates sequential IDs for everyone.
Twitter SnowflakeRecommended
64-bit ID with structure:
- 1 bit - sign
- 41 bit — timestamp (ms)
- 10 bit — machine ID
- 12 bit — sequence number
Summary of the first part of the book
The first seven chapters form the working foundation for system design interview prep:
Strengths
- ✓ Clear 4-step framework
- ✓ Good introduction to scaling
- ✓ Practical algorithms such as rate limiting
- ✓ Useful building blocks
What to pay attention to
- ⚠ Consistency models are described at a fairly high level
- ⚠ Some chapters work better as building blocks than as large standalone cases
- ⚠ It helps to pair the book with "Database Internals"
Analysis
System Design Interview Review — Part 2
A detailed overview of practical problems from the second part of the book.
Part 2: Practice Problems (Chapters 8-16)
The second part moves into classic interview cases, from a URL shortener to a cloud file system.
URL Shortener
Practical case on short-key generation, redirects, abuse protection, and scaling.
8. Design a URL Shortener
A service like bit.ly or tinyurl looks harmless, but in an interview it runs into load fast: redirects vastly outnumber link creation, so reads drive the architecture. From there the conversation moves into the key encoding scheme and database sharding.
Requirements
- 100 million URLs generated per day
- Read:Write ratio = 10:1
- Average URL length = 100 symbols
- Store for 10 years
API
POST /api/shorten— creating a short linkGET /:shortUrl— redirect to the original URL
Hashing Options
| Approach | Description | Peculiarities |
|---|---|---|
| Base62 | [a-zA-Z0-9] | 62⁷ ≈ 3.5 trillion combinations |
| MD5/SHA | Hash + trim | Possible collisions |
| Counter + Base62 | Incremental ID | Predictability |
Additional questions
- Rate limiting on requests
- Database sharding
- Link Usage Analytics
Web Crawler
Practical case on crawl queues, duplicate removal, and polite access to external domains.
9. Design a Web Crawler
A crawler walks pages across the web and feeds the search engine. The hard part is not downloading one page but the scale of the crawl: you have to avoid looping on duplicates and avoid burying an external site under a flood of requests.
Requirements
- 1 billion pages per month
- Storage 5 years
- Average page size - 500 KB
- HTML only (extensible)
System components
URL Frontier: Politeness & Priority
Prioritizer places URLs into queues with different priorities. Front Queue Selector enforces politeness: requests to the same domain go through one worker sequentially so the crawler does not overload an external site.
Notification System
Practical notification design: delivery channels, queues, retries, and observability.
10. Design a Notification System
The system delivers millions of push notifications, SMS messages, and emails per day. The pivotal decision is that every delivery channel plays by its own rules and fails in its own way, so they get split into separate queues with their own retries.
Architecture
- Notification API — task intake, authentication, and rate limiting
- Message Queues — separate queues for iOS, Android, SMS, Email
- Workers — queue handlers for each channel
- 3rd Party Services — APNs, FCM, Twilio, SendGrid
- Analytics Service — delivery tracking and metrics
Twitter/X
Practical feed case: fanout strategy, caching, consistency, and read-heavy scaling.
11. Design a News Feed System
A social-style news feed is a classic case for balancing write fan-out, read performance, and cache design.
Requirements
- 10M DAU
- Up to 5000 friends
- Posts with text, photos, videos
- Sort by time
Fan-out strategies
- Push — precompute feeds for all followers
- Pull — build the feed on demand
- Hybrid — mix both strategies for celebrity-scale accounts
Key Components
Chat System
Realtime transport, stateful nodes, queues, and offline message delivery.
12. Design a Chat System
A messenger with direct chats, group chats, message history, and presence tracking. The central question of the case is how to deliver messages instantly without losing them when the recipient is offline.
Methods for obtaining data
Polling
Periodic server polling. Simple, but ineffective.
Long Polling
The request stays open until data arrives or the timeout expires.
WebSocket ✓
Two-way channel. Recommended for chats.
Components
- Connection API — HTTP for auth and chat server assignment
- Chat API — WebSocket for messages and heartbeats
- Message Queue → Keeper Worker, Push Notification Worker
- Heartbeat Queue → Online Presence Worker → Presence DB
Stateful Chat Servers
Chat servers hold active WebSocket connections, which makes them stateful. That means the system also needs a routing mechanism that can deliver each message to the right server.
Search System
Search architecture: ingestion, indexing, retrieval, ranking, and latency budget.
13. Design Search Autocomplete
Suggestions have to appear on virtually every keystroke, so the whole case revolves around a latency budget: the response must come back before the user types the next character.
Requirements
- 10M DAU
- 10 searches/user/day
- Top 5 tips by frequency
- English only
Key data structure
Supports efficient prefix lookup while keeping track of query frequency
Architecture
- Search queries flow into Search Queue
- Workers update the trie and refresh query frequencies
- Shard Manager picks the right shard for each request
- Autocomplete API returns the top 5 suggestions for the prefix
Video Hosting
Practical video-platform architecture: upload pipeline, transcoding, CDN delivery, and recommendation feed.
14. Design YouTube
The hard part of a video platform is not showing a clip but the path to playback: an uploaded video has to run through a transcoding pipeline into different formats and resolutions, get spread across a content delivery network, and only then reach the user.
Key aspects
Parallel video processing in different formats and resolutions
Distributing videos via a global CDN
Task graph for parallel processing
Feed of recommendations and subscriptions
Distributed File System
Practical case on metadata/data separation, replication, and failure recovery.
15. Design Google Drive
Cloud storage with cross-device synchronization. The most expensive part of the case is the sync itself: shipping a whole file on every change is too costly, so files are split into blocks and only the changed blocks travel.
Requirements
- 10M DAU
- 10 GB per user
- Upload/Download files
- Synchronization between devices
- Sharing with other users
Key Components
16. The Learning Continues
In the final chapter, the author shares sources for further study.
Author's recommendations
- Engineering blogs of large companies (Netflix, Uber, Airbnb, Meta)
- Conferences and speeches (Strange Loop, QCon, InfoQ)
- Book "Designing Data-Intensive Applications, 2nd Edition" by Martin Kleppmann and Chris Riccomini
- Practice on real problems and mock interviews
Summary of the book by Alex Xu
Alex Xu's book is a strong starting point for system design interview prep when you use it as a thinking framework rather than a bank of memorized answers.
Strengths
- ✓ Clear 4-step framework
- ✓ 12 practice problems
- ✓ Clear diagrams
- ✓ A solid introduction to rough estimation
- ✓ Additional questions for each task
Recommendations
- ⚠ Supplement DDIA for theory
- ⚠ Learn Database Internals for the database
- ⚠ Practice on a mock interview
- ⚠ Read engineering blogs
Sources and additional materials
Related chapters
- Why Read System Design Interview Books - Section context and positioning of Alex Xu's book among core interview preparation sources.
- System Design Primer (short summary) - Checklist-oriented pattern base that complements the structured interview flow from the book.
- Object Oriented Design Interview: An Insider's Guide (short summary) - A low-level companion to Alex Xu's book: classes, relationships, APIs, and application-level design.
- Hacking the System Design Interview (short summary) - Alternative 7-step framework with additional interview practice scenarios.
- Acing the System Design Interview (short summary) - Methodology-focused companion with deeper coverage of distributed transaction design.
- Rate Limiter - Core practical case from the book covering traffic-shaping algorithms and trade-offs.
- Notification System - Asynchronous notification delivery, queueing, and reliability choices at scale.
- Chat System - Messaging architecture with persistent connections, delivery guarantees, and horizontal growth.
- Search System (Google/Elasticsearch) - Indexing, autocomplete ranking, and architecture trade-offs in a classic interview case.
