
about this book
Every modern application is a distributed system. Yet despite their ubiquity, distributed systems remain notoriously difficult to understand, design, and implement. This book bridges that gap, taking you from novice or intermediate to expert, by providing the understanding and mental models you need to reason about and architect complex distributed systems with confidence.
Although many resources teach specific technologies, frameworks, or platforms, Think Distributed Systems focuses on enduring principles and patterns that go beyond any single implementation. This book is not just another catalog of algorithms or protocols. Instead, it teaches you to think like a distributed systems engineer, understanding the core concepts and mechanics that define real-world distributed systems.
Who should read this book?
This book is for software engineers who want to build a solid foundation in distributed systems. You don’t need experience; the journey begins from first principles and builds toward advanced topics. If you’ve worked with distributed systems but found yourself frustrated by fuzzy mental models and vague intuitions, this book will transform uncertainty into clarity and bring complex ideas into focus.
How this book is organized: A road map
The book is organized into 12 chapters, taking you from fundamental to advanced concepts: