Term Kind Topic What it is
Ambassador Pattern pattern Sidecar & Ambassador A helper process that handles outbound network communication on behalf of an application, adding retries, routing, security and telemetry without changing it.
Anti-Corruption Layer ACL pattern Anti-Corruption Layer A translation boundary that keeps another system's model — usually a legacy or vendor one — from leaking into your domain.
API Gateway pattern API Gateway A single entry point that handles cross-cutting edge concerns — routing, authentication, rate limiting, TLS — so backend services do not each implement them.
Approximate-Then-Commit Stale Selection Exact Commitment, Two-Phase Precision pattern Materialized Views Selecting candidates from a deliberately stale projection and committing with a conditional write against the authoritative record - which buys cheap selection without sacrificing correctness at the moment it …
Backend for Frontend BFF pattern Backend for Frontend A dedicated backend per client experience, owned by the team that owns that client, so each surface gets exactly the payload it needs.
Backend for Frontend BFF pattern Architecture Patterns A separate, narrow backend per client experience, which aggregates and reshapes downstream services for exactly that client's needs.
Broker and Mediator Topology pattern Event-Driven Architecture Two ways of organising an event-driven system — components reacting independently to a shared channel, or a central component coordinating a defined sequence.
Cell Cellular Architecture, Bulkhead Cell, Independent Stack pattern Cell-Based Architecture A complete, independent instance of a system serving a subset of customers, sharing no state with other cells - so that almost every class of failure is bounded to one cell's population rather than the whole u…
Cell Router Cell Mapping Layer, Partition Front Door pattern Cell-Based Architecture The thin shared component that maps a customer to their cell - the one part of a cell-based architecture that is not isolated, and therefore the part that must be simplest.
Cell-Based Architecture Cellular Architecture, Shuffle Sharding pattern Cell-Based Architecture Running many complete, independent copies of the stack, each serving a subset of users, so any failure is confined to one cell.
Client-Specific Aggregation pattern Backend for Frontend A dedicated backend per client type that shapes and combines downstream data for that client's needs, owned by the client team.
Competing Consumers pattern Competing Consumers Multiple instances reading from the same queue, each taking different messages, so throughput scales by adding consumers.
CQRS Command Query Responsibility Segregation pattern CQRS Separating the model that accepts writes from the model that serves reads, so each can be optimised independently — at the cost of the gap between them.
Durable Execution Workflow-as-Code, Replay-Based Workflows, Persistent Execution pattern Saga Running workflow code whose complete execution history is persisted, so a crashed process resumes by replaying that history rather than restarting - which makes process failure an implementation detail rather …
Event Sourcing in Practice Event Store, Append-Only State pattern Event Sourcing Storing the sequence of changes rather than current state, the capabilities that follow, and the erasure problem that must be designed for on day one.
Event Stream Versioning pattern Event Sourcing Transforming an old event version into the current shape when it is read, allowing a stored event history to be interpreted by evolved code.
Event-Driven Architecture EDA pattern Event-Driven Architecture A style in which components communicate by publishing and reacting to facts, rather than by calling each other and waiting.
Event-Driven Architecture EDA pattern Architecture Patterns A style in which components communicate by emitting and reacting to facts about what happened, rather than by calling each other.
Fan-Out Delivery pattern Publish/Subscribe Delivering one published message to many independent subscribers, each with its own copy, position and failure handling.
Gateway Aggregation pattern API Gateway Combining several backend calls into one client-facing response at the gateway, reducing client round trips at the cost of coupling the gateway to backend structure.
Hexagonal Architecture Ports and Adapters pattern Architecture Patterns Putting the domain at the centre and letting everything external — UI, database, queues — attach through ports implemented by replaceable adapters.
Layered Architecture N-Tier pattern Layered Architecture Organising a system into horizontal layers with a strict dependency direction — the default structure, valuable for its constraint rather than its shape.
Layered Architecture N-Tier pattern Architecture Patterns Organising code into horizontal layers — presentation, application, domain, data — where each layer may only call the one beneath it.
Logical Shard Virtual Shard, Shard Slot pattern Sharding Patterns A unit of partitioned data that routing targets by name rather than by machine, so data can be moved between physical hosts without changing how anything is addressed.
Materialised View Pattern pattern Materialized Views Maintaining a pre-computed, query-shaped copy of data so reads are cheap, at the cost of write amplification and staleness.
Model Translation Boundary pattern Anti-Corruption Layer The layer at which an external system's model is converted into your own, preventing its concepts and accidents from spreading into your domain.
Modular Monolith pattern Architecture Patterns A single deployable unit internally partitioned into modules with enforced boundaries, explicit interfaces and no shared internal state.
Outbox Relay pattern Outbox The process that reads pending messages from an outbox table and publishes them to a broker, providing at-least-once delivery with no distributed transaction.
Pipes and Filters pattern Pipes and Filters Decomposing processing into independent stages connected by data channels, so each stage can be developed, tested, scaled and restarted alone.
Pipes and Filters pattern Architecture Patterns Decomposing processing into independent steps connected by channels, each transforming its input and passing it on.
Process Manager pattern Orchestration vs Choreography A component that owns the state and sequencing of a multi-step business process, deciding what happens next in response to events.
Publish-Subscribe Pub/Sub pattern Publish/Subscribe One publication delivered to many subscribers, with the publisher unaware of who they are — and the fan-out problem that comes with it.
Publish/Subscribe Pub/Sub pattern Architecture Patterns A messaging pattern where each published message is delivered to every interested subscriber, rather than to one competing worker.
Read Model Projection pattern CQRS A denormalised store built and maintained from write-side events specifically to serve one query shape efficiently.
Sharding Patterns Horizontal Partitioning pattern Sharding Patterns Splitting data across independent stores by a key, and the choice of that key — which is the decision that will define the system for years.
Sidecar pattern Architecture Patterns Deploying a helper process alongside the main application in the same unit, to supply cross-cutting behaviour without changing the application.
Strangler Fig pattern Strangler Fig Replacing a legacy system incrementally by routing individual capabilities to new implementations until nothing is left running on the old one.
Strangler Fig Strangler Pattern pattern Architecture Patterns Replacing a legacy system incrementally by routing individual capabilities to new implementations behind a facade, until nothing routes to the old system.
Transactional Outbox Outbox Table, Reliable Event Publication, Store-and-Forward Events pattern Outbox Writing an event into a table within the same transaction as the business change, then publishing it separately - so the event exists if and only if the change committed, which no ordering of two independent w…
Transactional Outbox Outbox Pattern pattern Outbox Writing an event into the same database transaction as the state change, then relaying it, to eliminate the dual-write problem.