This book matters because it makes distributed systems tangible through small composable building blocks rather than through abstract diagrams of ten services.
In real design work, the chapter shows how sidecar, ambassador, scatter/gather, work queues, and batch approaches combine into practical workflows, and what they immediately imply for idempotency, retry safety, and observability.
In interviews and engineering discussions, it helps present patterns as a way to simplify a system without hiding the real constraints and weak points of the architecture behind them.
Practical value of this chapter
Design in practice
Use composable patterns to build distributed workflows from independent building blocks.
Decision quality
Stress-test patterns for idempotency, retry safety, and observability in complex flows.
Interview articulation
Show a mature design language: sidecar, ambassador, adapter, and queue-driven fan-out.
Trade-off framing
Call out when patterns truly reduce complexity and when they only mask deeper system issues.
Related book
Kubernetes Patterns
Detailed catalog of patterns for production deployments in K8s.
Designing Distributed Systems
Authors: Brendan Burns
Publisher: O'Reilly Media, 2018
Length: 162 pages
Patterns from Brendan Burns: sidecar, ambassador, scatter/gather, work queues and batch processing.
Documentaries
Book structure
Single-Node Patterns
Patterns for one node: sidecar, ambassador, adapter. Composition of containers within a Pod.
Multi-Node Patterns
Serving patterns: replicated, sharded, scatter/gather. Scaling and fault tolerance.
Batch Patterns
Work queues, event-driven batch, coordinated processing. Patterns for data processing.
Single-Node Patterns
Patterns for organizing several containers on one node (in one Pod). Based on the principle of division of responsibility.
Sidecar Pattern
An additional container extends the functionality of the main application without changing its code.
Examples of use:
- Log shipping (Fluentd, Filebeat)
- Configuration sync (git-sync)
- SSL termination
Pod
Ambassador Pattern
A proxy container simplifies access to external services by hiding the complexity of the connection.
Examples of use:
- Database connection pooling
- Service mesh proxy (Envoy)
- Circuit breaker
Proxy hides connection details
Adapter Pattern
The adapter container converts the application's output to a standard format.
Examples of use:
- Prometheus exporter
- Log format normalization
- Legacy API wrapper
Normalization of formats and metrics
Multi-Node Serving Patterns
Deep Dive
Designing Data-Intensive Applications
Kleppmann about replication, partitioning and consistency.
Replicated Load-Balanced Services
Identical replicas for the load balancer. The simplest scaling pattern for stateless services.
Sharded Services
Data is divided between nodes by key. Each shard processes its own subset of data.
Sharding strategies:
- Hash-based (consistent hashing)
- Range-based (geographic, time)
- Directory-based (lookup table)
Challenges:
- Hot spots
- Rebalancing
- Cross-shard queries
Scatter/Gather Pattern
The request is distributed to all nodes in parallel, the results are aggregated.
Used in search engines, distributed databases, analytics.
Batch Computational Patterns
Related book
Building Microservices
Sam Newman about workflow orchestration and choreography.
Work Queue Systems
Producer-consumer pattern for parallel processing of tasks.
Source
Generates work items
Queue
Buffer between stages
Workers
Parallel processing
Event-Driven Batch Processing
Processing is triggered by events (new file, message in queue, webhook).
File upload / webhook / message queue
Coordinated Batch Processing
Multi-stage pipelines with dependencies between stages.
Implemented through workflow engines: Airflow, Argo Workflows, Temporal.
Ownership and Functions as a Service
Hands-Off Table
Responsibility matrix: who owns which system component. Critical for incident response and maintenance.
FaaS Decorator Pattern
Functions as decorators to add cross-cutting concerns: authentication, logging, rate limiting.
Decorators add cross-cutting concerns
Application at System Design interview
Useful Concepts
- Sidecar for cross-cutting concerns
- Ambassador for service mesh
- Sharded services for scale
- Scatter/Gather for search
- Work queues for batch processing
Questions where it will be useful
- “How to add logging without changing the code?”
- “How to scale a stateful service?”
- “How to implement distributed search?”
- “How to process millions of events?”
Main conclusions
Related chapters
- Kubernetes Patterns (short summary) - Closest practical layer: how distributed patterns are implemented in production Kubernetes platforms.
- Kubernetes Fundamentals (v1.35): architecture, objects and baseline practices - Core Kubernetes operating model behind sidecar, queue, and scatter-gather pattern execution.
- Cloud Native (short summary) - Cloud-native architecture context around resilience, delivery, and data decisions in distributed services.
- Why know Cloud Native and 12 factors - Intro framing for platform thinking and trade-off analysis in distributed system design.
- Service Mesh Architecture - Extension of service-to-service communication, traffic policy, and networking concerns in distributed systems.
- Event-Driven Architecture: Event Sourcing, CQRS, Saga - Asynchronous coordination and decomposition patterns for high-scale distributed workloads.
- Kafka: The Definitive Guide (short summary) - Queue and streaming practice that grounds Work Queue and event-driven patterns from the book.
