A Patterns Approach to Designing Distributed Systems and Solving Common Implementation Problems
More and more enterprises today are dependent on cloud services from providers like AWS
Microsoft Azure and GCP. They also use products such as Kafka and Kubernetes or databases
such as YugabyteDB Cassandra MongoDB and Neo4j that are distributed by nature. Because
these distributed systems are inherently stateful systems enterprise architects and developers
need to be prepared for all the things that can and will go wrong when data is stored on
multiple servers--from process crashes to network delays and unsynchronized clocks. 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.
Register your book for convenient access to downloads updates and or corrections as they
become available. See inside book for details.