Designing Distributed Systems

About the book In "Designing Distributed Systems," author Brendan Burns, a Partner Architect at Microsoft Azure, tackles the complexities of building reliable and scalable distributed systems, which often feel more like an art than a science. This practical guide reveals how to adapt and apply established software design patterns, many created over two decades ago, to the realm of modern ...

Designing Distributed Systems 1

These distributed systems can be significantly more complicated to design, build, and debug correctly. The engi‐neering skills needed to build a reliable distributed system are significantly higher than those needed to build single-machine applications like mobile or web frontends.

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 ...

Designing Distributed Systems 3

A distributed system is a system where there are separate components (nodes, servers, etc.) that are integrally linked to each other to perform the operations. These systems will be created for the capability to scale, resilience, and fault tolerance. They communicate and also collaborate their operations through networks that enable the processing, storing, and sharing of resources in a ...

Designing Distributed Systems 4

Image/Video Processing – Utilize scatter-gather for distributed image/video processing, such as encoding frames in parallel and gathering results for the final output. Distributed Search – Implement scatter-gather in distributed search systems to distribute search queries across nodes, gather and rank results for final search output.

Designing Distributed Systems 5

Navigate the complexities of distributed systems architecture. Learn key principles, components, and design considerations for building scalable and resilient systems.

Designing Distributed Systems 6