Architectural pattern

An architectural pattern is a reusable, named solution to a recurring structural problem in software design, applied at the level of a whole system or major subsystem — rather than to a single class or function, which is the scope of a design pattern. Architectural patterns describe how the major components of a system are organized and how they communicate, not the fine-grained implementation details within any one component.

Examples of architectural patterns include:

Choosing an architectural pattern is one of the most consequential decisions in software architecture, because it shapes how easy a system is to change, scale, test, and reason about for the lifetime of the system. Unlike a design pattern applied locally to a single class or package, an architectural pattern is difficult and expensive to change once a system is built around it.


See also