Skip to content

Fragmented metapatterns

Denys Poltorak edited this page May 26, 2026 · 10 revisions

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

Table of Contents:

Introduction
Foundations of software architecture
Basic metapatterns
Extension metapatterns
Fragmented metapatterns
Implementation metapatterns
Analytics
Appendices

Fast Navigation:

Websites about Patterns:

Clone this wiki locally