Microservice Patterns
The Microservice Architecture pattern language collects recurring decisions about application architecture, service boundaries, collaboration, data ownership, transactional messaging, communication, deployment, discovery, reliability, security, observability, testing, and migration.
Cohesive Correspondence
| Pattern family | Cohesive correspondence |
|---|---|
| Monolith or microservice architecture | modular-monolith and microservice practices over semantic, ownership, deployment, and failure boundaries |
| Decomposition by business capability or subdomain | DDD, boundaries, entity models, process graphs, authority, and team ownership |
| Service collaboration | interaction, business transactions, sagas, CQRS, API composition, command-side replicas, and domain-event publication |
| Transactional messaging | transactional outbox, transactional inbox, log tailing, polling publication, idempotency, and commit boundaries |
| Communication and external API | EIP, request/reply, messaging, gateways, discovery, contracts, and compatibility and evolution |
| Reliability and observability | Circuit breaking, retry, health checks, metrics, audit, tracing, and provenance |
| Deployment and infrastructure | Hosts, containers, serverless platforms, service meshes, sidecars, configuration, and service registries as realization substrate |
Microservice patterns provide an important bridge between DDD and EIP, but their terms remain qualified. A service is not automatically one bounded context, subdomain, aggregate, entity, process, observer, team, or deployment instance. Database per Service establishes an access and ownership arrangement; it does not by itself establish semantic authority or correct service boundaries. A message labeled a domain event still requires the observer-relative event and boundary distinctions used throughout Cohesive.
Overlapping Catalogs
Saga, CQRS, Event Sourcing, Transactional Outbox, Idempotent Consumer, Messaging, Shared Database, API Gateway, and Anti-Corruption Layer overlap DDD, EIP, enterprise application patterns, cloud patterns, and distributed-systems patterns. Cohesive preserves the source provenance while mapping them onto shared concepts rather than duplicating primitives.
External References
- Chris Richardson, A Pattern Language for Microservices.
- Chris Richardson, Microservices Patterns, Manning, 2018.
Related concepts: pattern languages and correspondence, microservices, modular monolith, domain-driven design, enterprise integration patterns, boundaries, interaction, sagas, CQRS, transactional outbox, transactional inbox, compatibility and evolution, observability and provenance, realization.