Without established design patterns to guide them, developers have had to build distributed systems from scratch, and most of these systems are very unique indeed. Today, the increasing use of containers has paved the way for core distributed system patterns and reusable containerized components. This practical guide presents a collection of repeatable, generic patterns to help make the development of reliable distributed systems far more approachable and efficient.Author Brendan Burns—Director of Engineering at Microsoft Azure—demonstrates how you can adapt existing software design patterns for designing and building reliable distributed applications. Systems engineers and application developers will learn how these long-established patterns provide a common language and framework for dramatically increasing the quality of your system.Understand how patterns and reusable components enable the rapid development of reliable distributed systemsUse the side-car, adapter, and ambassador patterns to split your application into a group of containers on a single machineExplore loosely coupled multi-node distributed patterns for replication, scaling, and communication between the componentsLearn distributed system patterns for large-scale batch data processing covering work-queues, event-based processing, and coordinated workflows