-
Notifications
You must be signed in to change notification settings - Fork 66
Fragmented metapatterns
There are several topologies with no system-wide layers. Some of them incorporate two or three orthogonal domains which vary in abstractness to the extent that a service (limited to a subdomain) of one domain acts as a layer for another domain.
Layered Services is an umbrella metapattern which highlights implementation details of Services, Pipeline, or Monolith.
Includes: Orchestrated Three-Layered Services, Choreographed Two-Layered Services, and Command Query Responsibility Segregation (CQRS).
Polyglot Persistence is about using multiple data stores which differ in roles or technologies. Each of the upper-level components may have access to any data store. Each data store is a Shared Repository.
Includes: specialized data stores, private and shared databases, data file, and Content Delivery Network (CDN); read-only replicas, Reporting Database, CQRS View Database, Memory Image, Query Service, search index, historical data, and Cache-Aside.
Backends for Frontends feature a service (BFF) for each kind of the system’s client. A BFF may be a Proxy, Orchestrator, or both. Each BFF communicates with all the components below it. The pattern looks like multiple Proxies or Orchestrators deployed in parallel.
Includes: Layered Microservice Architecture.
SOA comprises three or four layers of services, with each layer making a domain. The upper layer contains Orchestrators which are often client-specific, just like BFFs. The second layer incorporates business rules and is divided into business subdomains. The lower layer(s) are libraries and utilities, grouped by functionality and technologies. Any component may use (orchestrate) anything below it.
Includes: distributed monolith, enterprise SOA, and Domain-Oriented Microservice Architecture (DOMA).
Some domains allow for hierarchical composition where the functionality is spread over a tree of components.
Includes: Orchestrator of Orchestrators, Presentation-Abstraction-Control (PAC) and Hierarchical Model-View-Controller (HMVC), Bus of Buses, and the WSO2 version of Cell-Based (Microservice) Architecture (Services of Services).
| << Sandwich | ^ Home ^ | Layered Services >> |
|---|
CC BY Denys Poltorak. Editor: Lars Noodén. Download the book from Leanpub or GitHub. Generated with odt2wiki.
Analytics
Appendices
- Acknowledgements
- Books referenced
- Copyright
- Disclaimer
-
Evolutions of architectures
- Evolutions of a Monolith that lead to Shards
- Evolutions of a Monolith that result in Layers
- Evolutions of a Monolith that make Services
- Evolutions of a Monolith that rely on Plugins
- Evolutions of Shards that share data
- Evolutions of Shards that share logic
- Evolutions of Layers that make more layers
- Evolutions of Layers that help large projects
- Evolutions of Layers to improve performance
- Evolutions of Layers to gain flexibility
- Evolutions of Services that restructure services
- Evolutions of Services that add layers
- Evolutions of a Pipeline
- Evolutions of a Middleware
- Evolutions of a Shared Repository
- Evolutions of a Proxy
- Evolutions of an Orchestrator
- Evolutions of a Sandwich
- Format of a metapattern
- Glossary
- History of changes
- Index of patterns