Skip to content
Denys Poltorak edited this page Aug 20, 2025 · 38 revisions

Architectural Metapatterns

This site has multiple goals:

  1. Become a wiki of architectural patterns

    There are many patterns. I invested over a year into collecting architectural patterns and styles that relate to the structure of a system.

    You will find here Microservices and Microkernel but not Test-Driven Development (which is a methodology pattern) or Dead Letter Channel (a communication pattern).

  2. Show that the patterns make a hierarchy

    There are way too many patterns. Therefore some of them are similar, as there are only so many different things a human mind can invent. This wiki groups patterns according to their structure and function, and describes specific features, use cases, benefits and drawbacks for each group of patterns as a whole to outline the big picture and avoid repetition.

    For example, Scatter-Gather and MapReduce are almost identical (Scatter-Gather lacks the Reduce step) while their relation to Saga is more remote but still traceable (each of the three patterns coordinates components of a system).

  3. Provide an intuitive way to study patterns

    Having patterns arranged into a hierarchy greatly reduces the amount of information one must remember to learn a new pattern as it differs from others in its group in minor details.

    Also, if we can enumerate patterns and see how they relate to each other, then we can compare them and even spot empty spaces in our knowledge - which is how I discovered Polyglot Persistence.

Places to start:

You can download it as a book from GitHub or Leanpub(which also features a few testimonials and a detailed table of contents). The work is licensed under Creative Commons Attribution 4.0 International.

Any help with the content, including adding new patterns and correcting the ones already described, is appreciated.

Table of Contents:

Introduction >>

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