{"product_id":"patterns-of-distributed-systems-9780138221980","title":"Patterns of Distributed Systems","description":"\u003cp\u003e\u003cstrong\u003eA Patterns Approach to Designing Distributed Systems and Solving Common Implementation Problems\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eMore 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.\u003c\/p\u003e \u003cp\u003e\u003cem\u003e\u003cstrong\u003ePatterns of Distributed Systems\u003c\/strong\u003e\u003c\/em\u003e 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.\u003c\/p\u003e \u003cp\u003eFeaturing 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.\"\u003c\/p\u003e \u003cul\u003e \u003cli\u003eReview the building blocks of consensus algorithms, like Paxos and Raft, for ensuring replica consistency in distributed systems\u003c\/li\u003e \u003cli\u003eUnderstand the use of logical timestamps in databases, a fundamental concept for data versioning\u003c\/li\u003e \u003cli\u003eExplore commonly used partitioning schemes, with an in-depth look at intricacies of two-phase-commit protocol\u003c\/li\u003e \u003cli\u003eAnalyze mechanisms used in implementing cluster coordination tasks, such as group membership, failure detection, and enabling robust cluster coordination\u003c\/li\u003e \u003cli\u003eLearn techniques for establishing effective network communication between cluster nodes.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eAlong 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.\u003c\/p\u003e \u003cp\u003e\u003cem\u003eRegister your book for convenient access to downloads, updates, and\/or corrections as they become available. See inside book for details.\u003c\/em\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eUnmesh Joshi\u003c\/strong\u003e is a Principal Consultant at Thoughtworks with 22 years of industry experience. He is a software architecture enthusiast, who believes that understanding principles of distributed systems is as essential today as understanding web architecture or object-oriented programming was in the last decade. For the last two years he has been publishing patterns of distributed systems on martinfowler.com. He has also conducted various training sessions around this topic. Twitter: @unmeshjoshi\u003c\/p\u003e\u003cbr\u003e","brand":"Addison-Wesley Professional","offers":[{"title":"Default Title","offer_id":50727217135890,"sku":"9780138221980","price":45.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_3f910ba9-8686-45cf-98e2-0b92983d83d6.jpg?v=1734896674","url":"https:\/\/surprise-castle.myshopify.com\/products\/patterns-of-distributed-systems-9780138221980","provider":"Surprise Castle","version":"1.0","type":"link"}