Home > Store

Patterns of Distributed Systems

Register your product to gain access to bonus material or receive a coupon.

Patterns of Distributed Systems

eBook

  • This product currently is not for sale.
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Not for Sale

Description

  • Copyright 2024
  • Edition: 1st
  • eBook
  • ISBN-10: 0-13-822202-9
  • ISBN-13: 978-0-13-822202-4

Learn How to Better Understand Distributed System Design and Solve Common Problems

Enterprises today rely on a range of distributed software handling data storage, messaging, system management, and compute capability. Distributed system designs need to be implemented in some programming language, and there are common problems that these implementations need to solve. These problems have common recurring solutions. A patterns approach is very suitable to describe these implementation aspects.

Patterns by nature are generic enough to cover a broad range of products from cloud services like Amazon S3 to message brokers like Apache Kafka to infrastructure frameworks like Kubernetes to databases like MongoDB or Actor frameworks like Akka. At the same time the pattern structure is specific enough to be able to show real code. The beauty of this approach is that even if the code structure is shown in one programming language (Java in this case), the structure applies to many other programming languages. Patterns also form a "system of names," with each name having specific meaning in terms of the code structure.

The set of patterns presented in Patterns of Distributed Systems will be useful to all developers--even if they are not directly involved in building these kinds of systems, and mostly use them as a black box. Learning these patterns will help readers develop a deeper understanding of the challenges presented by distributed systems and will also help them choose appropriate cloud services and products. Coverage includes Patterns of Data Replication, Patterns of Data Partitioning, Patterns of Distributed Time, Patterns of Cluster Management, and Patterns of Communication Between Nodes.

The patterns approach used here will help you

  • Learn what a distributed system is and why distributed systems are needed
  • Understand the implementation of a wide range of systems such as databases, in-memory data grids, message brokers, and various cloud services
  • Prepare you to confidently traverse through open source codebases and discover how patterns and solutions map to real world systems like Kafka and Kubernetes

Extras

Author's Site

Please visit the author's site at https://martinfowler.com/articles/patterns-of-distributed-systems/.

Sample Content

Table of Contents

Preface
Acknowledgments
About the Author

Part I: Narratives
Chapter 1: The Promise and Perils of Distributed Systems
Chapter 2: Overview of the Patterns

Part II: Patterns of Data Replication
Chapter 3: Write-Ahead Log
Chapter 4: Segmented Log
Chapter 5: Low-Water Mark
Chapter 6: Leader and Followers
Chapter 7: HeartBeat
Chapter 8: Paxos
Chapter 9: Replicated Log
Chapter 10: Majority Quorum
Chapter 11: Generation Clock
Chapter 12: High-Water Mark
Chapter 13: Singular Update Queue
Chapter 14: Request Waiting List
Chapter 15: Idempotent Receiver
Chapter 16: Follower Reads
Chapter 17: Versioned Value
Chapter 18: Version Vector

Part III: Patterns of Data Partitioning
Chapter 19: Fixed Partitions
Chapter 20: Key-Range Partitions
Chapter 21: Two-Phase Commit

Part IV: Patterns of Distributed Time
Chapter 22: Lamport Clock
Chapter 23: Hybrid Clock
Chapter 24: Clock-Bound Wait

Part V: Patterns of Cluster Management
Chapter 25: Consistent Core
Chapter 26: Lease
Chapter 27: State Watch
Chapter 28: Gossip Dissemination
Chapter 29: Emergent Leader

Part VI: Patterns of Communication between Nodes
Chapter 30: Single-Socket Channel
Chapter 31: Request Batch
Chapter 32: Request Pipeline

References
Index

Updates

Errata

We've made every effort to ensure the accuracy of this book and its companion content. Any errors that have been confirmed since this book was published can be downloaded below.

Download the errata (49 KB .doc)

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.