Patterns of Distributed Systems

Publication date:
March 2, 2024

Patterns of Distributed Systems describes a set of patterns that have been observed in mainstream open-source distributed systems. Studying the common problems and the solutions that are embodied by the patterns in this guide will give you a better understanding of how these systems work, as well as a solid foundation in distributed system design principles. Featuring real-world code examples from systems like Kafka and Kubernetes, these patterns and solutions will prepare you to confidently traverse open-source codebases and understand implementations you encounter "in the wild." Review the building blocks of consensus algorithms, like Paxos and Raft, for ensuring replica consistency in distributed systems Understand the use of logical timestamps in databases, a fundamental concept for data versioning Explore commonly used partitioning schemes, with an in-depth look at intricacies of two-phase-commit protocol Analyze mechanisms used in implementing cluster coordination tasks, such as group membership, failure detection, and enabling robust cluster coordination Learn techniques for establishing effective network communication between cluster nodes. Along with enterprise architects and data architects, software developers working with cloud services such as Amazon S3, Amazon EKS, and Azure CosmosDB or GCP Cloud Spanner will find this set of patterns to be indispensable.

BOOK EPISODE

Patterns of Distributed Systems

James Lewis explores the “Patterns of Distributed Systems” book with its author Unmesh Joshi. The discussion navigates the complexities of distributed systems, dissecting consensus algorithms like Raft and Paxos. Unmesh Joshi unveils Paxos intricacies, its limitations in real-world applications, and the evolution reflected in Raft for enhanced efficiency. Timing's pivotal role, illustrated by Google's TrueTime, underscores challenges in clock synchronization. The conversation spotlights the book's distinctive patterns-based approach rooted in Java code, offering a practical gateway to comprehending distributed systems for a wider audience.

Watch the video here