-
Notifications
You must be signed in to change notification settings - Fork 56
Implementation metapatterns
There are patterns that describe implementation of components:
The Plugins pattern is about separating a system’s main logic from the customizable details of its behavior. That allows for the same codebase to be used for multiple flavors or customers.
Includes: Plug-In Architecture, Addons, Strategy, Hooks.
Hexagonal Architecture is a specialization of Plugins where every external dependency is isolated behind an Adapter, making it easy to update or replace third-party components.
Includes: Ports and Adapters, Onion Architecture, Clean Architecture; Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Model-View-Controller (MVC), Action-Domain-Responder (ADR), and Cell.
Microkernel is another derivation of Plugins, with a rudimentary core component which mediates between resource consumers (applications) and resource providers. The microkernel is a Middleware to the applications and an Orchestrator to the providers.
Includes: operating system, software framework, virtualizer, distributed runtime, interpreter, configuration file, Saga Engine, AUTOSAR Classic Platform.
A Mesh consists of intercommunicating shards, each of which may host an application. The shards coalesce into a fault-tolerant distributed Middleware.
Includes: grid; peer-to-peer networks, Leaf-Spine Architecture, Actors, Service Mesh, Space-Based Architecture.
| << Hierarchy | ^ Home ^ | Plugins >> |
|---|
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