Patterns of Distributed Systems

Patterns of Distributed Systems

English | 2023 | ISBN: 978-0138221980 | 390 Pages | PDF, EPUB | 71 MB

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
Homepage