Architectural Metapatterns [Leanpub PDF/iPad/Kindle]Kick off your book project in 3 hours! Live workshop on Zoom. You’ll leave with a real book project, progress on your first chapter, and a clear plan to keep going. Saturday, June 6, 2026. Learn more…
About
About<br>Author<br>Testimonials<br>Contents<br>Sample
About<br>About the Book
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.<br>Architectural Metapatterns is all about patterns and their relations. It generalizes hundreds of individual patterns into several wider classes (metapatterns) each of which can be applied to a local or distributed system to change its properties in a certain way. Rinse and repeat.<br>The content is lavishly illustrated with intuitive NoUML diagrams. It’s concise and AI-free.<br>Have a good time!<br>Here are the web version of the book and presentations that summarize its main content.
Share this book
Categories<br>Software Architecture
Feedback<br>Email the Author
Author<br>About the Author
Denys Poltorak<br>Denys is an unemployed C/C++ programmer from Ukraine.<br>He had 15 years of experience with embedded and high-load systems, nearly half of which he spent leading the development of a project, before he burned out, lost his job, and wrote a book.
Testimonials<br>Reader Testimonials
This book is PHENOMENAL. I program professionally, teach code architecture to teams, and read many books about software patterns and practices. This book is an instant classic, packed with pragmatic wisdom for software programmers, system architects, and development teams. Kudos for creating such an superb addition to the field, and moreover for making it widely available for the benefit of all of us.
Joel Parker Henderson<br>Head of Software Engineering, Technology Advisor
Architectural Metapatterns helps unravel the complexities surrounding software architecture by describing some common (and not so common) patterns an architect can use to better understand and form architectural solutions. In this book you’ll find hundreds of structure-based patterns encompassing communication, data, modularity, coupling, structure, and lots more, making it a must-read for any software architect.
Mark Richards<br>Author of Fundamentals of Software Architecture
This magnificent book lets you reason clearly about modern architectural patterns. Modern applications have only a few different types of problem to solve, but each problem has many possible solutions. This book steps through the problems and, for each one, discusses the trade-offs and different approaches in the patterns that solve that problem. After you read it, you'll know how to think about your problems and how to find the right architecture to solve them. This is exactly the kind of book I would have been delighted to sign when I was an editor.
Nathan Torkington<br>Author of Perl Cookbook
Contents<br>Table of Contents
.toc>li]:list-none">
Part 0. Introduction
You’ll find inside
Short table of contents
About this book
Structure of the book
Diagrams
Notation
The architectural religions
What’s wrong with patterns
TLDR
Metapatterns
Architectural patterns
Design space
Structure determines architecture
The system of coordinates
Map and reduce
An example of metapatterns
What does that mean
System topologies
Methodology
From theory to practice
The map of system topologies
Monolithic systems
True Monoliths
Monoliths with auxiliary layers
Monoliths with Plugins
Underdeveloped Moduliths
Layered architectures
Ordinary Layers
Scaled Layers
Other layered systems
Plugins family
Plugin Architecture
Separated Presentation
Control patterns
Hexagonal Architecture
Cell
Services area
Barebone services
Services with extensions
Hierarchies of services
Partially merged services
Fragmented patterns
Layers of services
Layered services
Hierarchies
Common motifs
Summary
Part 1. Foundations of software architecture
Modules and complexity
Concepts and complexity
Modules, encapsulation and bounded context
Coupling and cohesion
Development and operational complexity
Composition of modules
Forwarding and duplication
Summary
Forces, asynchronicity, and distribution
Requirements and forces
Conflicting forces
Asynchronous communication
Distribution
The goods and the price
Four kinds of software
Source of inputs
Latency constraints
Control (real-time, hardware input)
Variants
Patterns
Implementation
Interactive (soft real-time, user input)
Variants
Patterns
Implementation
Streaming (continuous, raw data input)
Variants
Patterns
Implementation
Computational (single run, user input)
Variants
Patterns
Implementation
Mixed cases
Camera
3D action game
SQL database
Summary
Arranging communication
Programming and architectural paradigms
Technologies are...