Cached at:
09/01/26, 07:43 PM
# The pattern language of software architecture
Source: [https://metapatterns.io/](https://metapatterns.io/)
Patterns of software architecture are all interrelated \(*no pattern is an island*\)\. You can rarely make a product in a pure architectural style, and the chances for it to survive undistorted over years are negligible\. Software grows iteratively and adapts to its environment\.
[*Architectural Metapatterns*](https://leanpub.com/metapatterns)is all about patterns and their relations\. It generalizes hundreds of individual patterns into several wider classes \([*metapatterns*](https://metapatterns.io/introduction/metapatterns/)\) each of which can be applied to a local or distributed system to change its properties in a certain way\.*Rinse and repeat\.*
The content is lavishly illustrated with[intuitive NoUML diagrams](https://metapatterns.io/introduction/about-this-book/#diagrams)\. It’s concise and AI\-free\.
*Have a good time\!*
[## Presentations \(outdated\)](https://speakerdeck.com/denyspoltorak)[](https://speakerdeck.com/denyspoltorak/patterns-of-patterns-c322149c-fcdd-4df6-8c6c-f273c7ab17dd)[](https://speakerdeck.com/denyspoltorak/basic-architectures)[](https://speakerdeck.com/denyspoltorak/architectural-extensions-c3e506c0-6472-4e2c-8113-b3d8ffa20d63)[](https://speakerdeck.com/denyspoltorak/fragmented-architectures-bf4d129f-4cd1-46bf-9fb0-248879872b25)[](https://speakerdeck.com/denyspoltorak/implementation-patterns)
---
[## Introduction](https://metapatterns.io/introduction/)[About this book](https://metapatterns.io/introduction/about-this-book/)[Metapatterns](https://metapatterns.io/introduction/metapatterns/)[System topologies](https://metapatterns.io/introduction/system-topologies/)[## Foundations of software architecture](https://metapatterns.io/foundations-of-software-architecture/)[Modules and complexity](https://metapatterns.io/foundations-of-software-architecture/modules-and-complexity/)[Forces, asynchronicity, and distribution](https://metapatterns.io/foundations-of-software-architecture/forces--asynchronicity--and-distribution/)[Four kinds of software](https://metapatterns.io/foundations-of-software-architecture/four-kinds-of-software/)[Arranging communication](https://metapatterns.io/foundations-of-software-architecture/arranging-communication/)[## Basic metapatterns](https://metapatterns.io/basic-metapatterns/)[Monolith](https://metapatterns.io/basic-metapatterns/monolith/)[Shards](https://metapatterns.io/basic-metapatterns/shards/)[Layers](https://metapatterns.io/basic-metapatterns/layers/)[Services](https://metapatterns.io/basic-metapatterns/services/)[Pipeline](https://metapatterns.io/basic-metapatterns/pipeline/)[## Extension metapatterns](https://metapatterns.io/extension-metapatterns/)[Middleware](https://metapatterns.io/extension-metapatterns/middleware/)[Shared Repository](https://metapatterns.io/extension-metapatterns/shared-repository/)[Proxy](https://metapatterns.io/extension-metapatterns/proxy/)[Orchestrator](https://metapatterns.io/extension-metapatterns/orchestrator/)[Sandwich](https://metapatterns.io/extension-metapatterns/sandwich/)[## Fragmented metapatterns](https://metapatterns.io/fragmented-metapatterns/)[Layered Services](https://metapatterns.io/fragmented-metapatterns/layered-services/)[Polyglot Persistence](https://metapatterns.io/fragmented-metapatterns/polyglot-persistence/)[Backends for Frontends](https://metapatterns.io/fragmented-metapatterns/backends-for-frontends--bff-/)[Service\-Oriented Architecture](https://metapatterns.io/fragmented-metapatterns/service-oriented-architecture--soa-/)[Hierarchy](https://metapatterns.io/fragmented-metapatterns/hierarchy/)[## Implementation metapatterns](https://metapatterns.io/implementation-metapatterns/)[Plugins](https://metapatterns.io/implementation-metapatterns/plugins/)[Hexagonal Architecture](https://metapatterns.io/implementation-metapatterns/hexagonal-architecture/)[Microkernel](https://metapatterns.io/implementation-metapatterns/microkernel/)[Mesh](https://metapatterns.io/implementation-metapatterns/mesh/)[## Analytics](https://metapatterns.io/analytics/)[Comparison of architectural patterns](https://metapatterns.io/analytics/comparison-of-architectural-patterns/)[Ambiguous patterns](https://metapatterns.io/analytics/ambiguous-patterns/)[Architecture and product life cycle](https://metapatterns.io/analytics/architecture-and-product-life-cycle/)[Real\-world inspirations for architectural patterns](https://metapatterns.io/analytics/real-world-inspirations-for-architectural-patterns/)[The heart of software architecture](https://metapatterns.io/analytics/the-heart-of-software-architecture/)[## Appendices](https://metapatterns.io/appendices/)[Acknowledgements](https://metapatterns.io/appendices/acknowledgements/)[Books referenced](https://metapatterns.io/appendices/books-referenced/)[Copyright](https://metapatterns.io/appendices/copyright/)[Disclaimer](https://metapatterns.io/appendices/disclaimer/)[Evolutions of architectures](https://metapatterns.io/appendices/evolutions-of-architectures/)[Format of a metapattern](https://metapatterns.io/appendices/format-of-a-metapattern/)[Glossary](https://metapatterns.io/appendices/glossary/)[History of changes](https://metapatterns.io/appendices/history-of-changes/)[Index of patterns](https://metapatterns.io/appendices/index-of-patterns/)
---
## The map of system topologies

---
## The book
This website is an online version of my book*Architectural Metapatterns: The Pattern Language of Software Architecture*which can be downloaded from[GitHub](https://github.com/denyspoltorak/metapatterns)or[Leanpub](https://leanpub.com/metapatterns)\.
It is a compendium of architectural patterns which sorts them out into a tree\-like hierarchy based on the pattern’s structure and function\. This[allows for grouping](https://metapatterns.io/introduction/metapatterns/)hundreds of patterns into less then 20 classes and exploring the common features, applicability, and performance of each class\.
It also includes supplementary topics that range from the[discussion on the nature of complexity](https://metapatterns.io/foundations-of-software-architecture/modules-and-complexity/)to the comparison of[orchestration](https://metapatterns.io/foundations-of-software-architecture/arranging-communication/orchestration/),[choreography](https://metapatterns.io/foundations-of-software-architecture/arranging-communication/choreography/), and[integration through shared data](https://metapatterns.io/foundations-of-software-architecture/arranging-communication/shared-data/)\. Aside of that, there is a wide range of[evolutions](https://metapatterns.io/appendices/evolutions-of-architectures/)which show how a system may change under different forces\.
*Architectural Metapatterns*is AI\-free, 440 pages long, and includes hundreds of[box\-and\-arrow diagrams](https://metapatterns.io/introduction/about-this-book/#diagrams)\.
If you like the book or website, please tell your friends about them\.*Knowledge must be free\!*