-
Notifications
You must be signed in to change notification settings - Fork 66
Foundations of software architecture
Denys Poltorak edited this page May 26, 2026
·
5 revisions
This part defines some ideas which are used throughout the book:
- Complexity and its relation to modules, coupling and cohesion.
- Forces (including non-functional requirements), their conflicts, and how those are resolved through asynchronous communication and distribution of system components.
- Different kinds of software systems: control, interactive, streaming, and computational.
- Communication paradigms: orchestration, choreography and shared data.
Please feel free to skip (through) it as you probably know most of them quite well.
- Modules and complexity
- Forces, asynchronicity, and distribution
- Four kinds of software
- Arranging communication
| << System topologies | ^ Home ^ | Modules and complexity >> |
|---|
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