Learn the basic principles that govern how distributed systems work and how you can design your systems for increased performance, availability and scalability. Understand the basic algorithms and protocols used to solve the most common problems in the space of distributed systems. See how theory can be put in practice through case studies and a collection of practices and patterns.
This book is divided into four main parts:
- Fundamental Concepts: introduction and study of the main concepts and theorems that are necessary to understand more complex topics, such as safety & liveness properties, consistency & failure models, the CAP theorem etc.
- Distributed Transactions & Consensus: introduction of the problem of distributed transactions and consensus and available solutions, such as two-phase commit, Paxos, Raft etc.
- Time & Order: a deep dive into the concepts of time and order, their role in a distributed systems and relevant techniques to handle them, such as Lamport clocks and vector clocks.
- Networking & Security: an overview of the main protocols and technologies used for networking, and approaches that can be used to build distributed systems in a secure way
- From theory to practice: an examination of how theory presented in previous sections can be used in practice, by looking at case studies of real-life distributed systems, practices and patterns used across the industry