-
Notifications
You must be signed in to change notification settings - Fork 56
Analytics
Denys Poltorak edited this page Oct 17, 2025
·
3 revisions
This part is dedicated to analyzing the architectural metapatterns, for if this book’s taxonomy of patterns is a step forward from the state of the art, it should bear fruits for us to pick.
I had no time to research every idea collected while the book was being written and its individual chapters published for feedback. A few of those pending topics, which may make additional chapters in the future, are listed below:
- Some architectural patterns (CQRS, Cache, Microservices, etc.) appear under multiple metapatterns. Each individual case makes a story of its own, teaching about both the needs of software systems and uses of metapatterns.
- There are different ways to split a component into subcomponents: Layers of Services differ from Layered Services. This should be investigated.
- An architectural quality may depend on the structure of the system. For example, a client request may be split into three subrequests to be processed sequentially or in parallel, depending on the topology (e.g. Pipeline, Orchestrated Services or Replicas), thus it is topology which defines latency. We can even draw formulas like:
- L = L1 + L2 + L3 for Pipeline,
- L = MAX(L1, L2, L3) for Orchestrated Services which run in parallel,
- L = MIN(L1, L2, L3) for Replicas with Request Hedging.
Other smaller topics that I was able to look into made the following chapters:
- Comparison of architectural patterns
- Ambiguous patterns
- Architecture and product life cycle
- Real-world inspirations for architectural patterns
- The heart of software architecture
| << Mesh | ^ Home ^ | Comparison of architectural patterns >> |
|---|
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