Architectural styles describe recurring high-level system structures. They are useful because they:
- give you a vocabulary to communicate architecture;
- suggest typical non-functional requirement trade-offs;
- guide decomposition and deployment decisions.
This course covers the following architectural styles. For each style, we introduce its topology with diagrams, pros and cons, potential variants, and pointers to real-world examples.
- Pipe-Filter
- Layered
- Repository
- Implicit Invocation
- MVVM (MVC, MVP)
- Server-Client (Microservices, Serverless)
- Process-Control
Many examples are chosen from The Architecture of Open Source Applications.