Architectural Styles

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.

Many examples are chosen from The Architecture of Open Source Applications.