Whether you're prepping for interviews or actually designing systems at work, here's what to read and in what order.
Quick Comparison
| Book | Author | Pages | Best For |
|---|---|---|---|
| Designing Data-Intensive Applications | Martin Kleppmann | 616 | system design |
| System Design Interview | Alex Xu | 322 | system design |
| System Design Interview Volume 2 | Alex Xu and Sahn Lam | 434 | system design |
| Web Scalability for Startup Engineers | Artur Ejsmont | 400 | system design |
| Building Microservices | Sam Newman | 616 | system design |
| Fundamentals of Software Architecture | Mark Richards and Neal Ford | 422 | system design |
1. Designing Data-Intensive Applications
By Martin Kleppmann · 616 pages
DDIA (as developers call it) is the definitive guide to understanding how modern data systems work under the hood. Martin Kleppmann covers databases, message queues, stream processing, batch processing, and distributed systems with exceptional clarity.
This is the single best technical book I've read in the last decade. Kleppmann has a gift for making complex distributed systems concepts genuinely understandable.
2. System Design Interview
By Alex Xu · 322 pages
Alex Xu's System Design Interview walks through 16 real system design problems step by step: URL shortener, news feed, chat system, notification service, rate limiter, key-value store, and more.
If you have a system design interview coming up, buy this book today. It's the most practical, structured resource available for this specific skill.
3. System Design Interview Volume 2
By Alex Xu and Sahn Lam · 434 pages
Volume 2 picks up where the first book left off with 13 more system design problems: proximity service, nearby friends, Google Maps, distributed message queue, metrics monitoring, ad click event aggregation, hotel reservation, distributed email service, S3-like object storage, real-time gaming leaderboard, payment system, digital wallet, and stock exchange.
A worthy sequel that tackles harder, more specialized problems. If you've already read Volume 1, this adds significant depth.
4. Web Scalability for Startup Engineers
By Artur Ejsmont · 400 pages
This book is a practical guide to scaling web applications from a few users to millions. Ejsmont covers the full stack: frontend optimization, web servers, caching layers, asynchronous processing, databases, search engines, and infrastructure.
The most practical scaling book for web developers. DDIA is deeper on theory; this book is better on "what do I actually do on Monday morning."
5. Building Microservices
By Sam Newman · 616 pages
Sam Newman's Building Microservices is the definitive guide to the microservices architectural style. The 2nd edition is significantly updated with new chapters on build pipelines, deployment strategies, and the organizational aspects of running microservices.
The most balanced take on microservices available. Newman doesn't evangelize — he presents microservices as a tool with specific tradeoffs and helps you decide if those tradeoffs make sense for your situation.
6. Fundamentals of Software Architecture
By Mark Richards and Neal Ford · 422 pages
This book defines what software architecture actually is and gives you a framework for making architectural decisions. Richards and Ford cover architecture styles (layered, microkernel, event-driven, microservices, space-based), architecture characteristics (scalability, elasticity, reliability, etc.), and the soft skills architects need.
The most structured introduction to software architecture available. The framework for evaluating architecture styles against requirements is something I use weekly in my actual work.
Top comments (0)