Architectural pattern
Also known as an architectural style, 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.
An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined sub-systems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them
– Buschmann et al
1996
Examples of architectural patterns include the following.
- Blackboard
- broker
- Client-server architecture
- cqrs
- Data-oriented architecture
- dependency injection
- Domain-driven design
- Entity Component System (ECS)
- Event-driven architecture
- Event sourcing
- Hexagonal architecture
- Layered architecture
- Message-driven architecture
- Micro frontend
- Microservices
- model-view controller
- Monoliths
- Nanoservices
- onion architecture
- Pipe and filter
- plugin
- Ports and adapters
- Reactive programming
- remote procedure call
- Request-response
- Serverless architecture
- Service-oriented architecture
- Strangler fig pattern
- Vertical-slice architecture
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
References
- Bushman et al (1996). Pattern-Oriented Software Architecture ("POSA"). — A series of books on software architecture patterns and design patterns. The first volume, known as POSA-1, is regarded as one of the most groundbreaking books on architecture patterns.
- Fowler et al (2002). Patterns of Enterprise Application Architecture ("PoEAA").