In software engineering, an architecture pattern is a reusable, proven solution to a recurring problem at the system level, addressing concerns related to the overall structure, component interactions, and quality attributes of the system. Software architecture patterns operate at a higher level of abstraction than software design patterns, solving broader system-level challenges. While these patterns typically affect system-level concerns, the distinction between architectural patterns and architectural styles can sometimes be blurry. Examples include Circuit Breaker.123
Software architecture style is a high-level structural organization that defines the overall system organization, specifying how components are organized, how they interact, and the constraints on those interactions. Architecture styles typically include a vocabulary of component and connector types, as well as semantic models for interpreting the system's properties. These styles represent the most coarse-grained level of system organization. Examples include Layered Architecture, Microservices, and Event-Driven Architecture.123
List of software architecture styles
- Event-driven architecture
- Hexagonal Architecture (also known as Ports and Adapters)
- Layered architecture
- Microkernel architecture1
- Pipes and Filters architecture1
- Microservices
- (Modular) monolithic
- Service-oriented architecture
- "Service-based architecture"1
- Space-based architecture
List of software architecture patterns
- Inbox and outbox pattern
- "Queue-Based Load Leveling", also known as the "Storage First Pattern", is an architectural pattern in which a queue acts as a buffer between an invoker service (such as an API Gateway) and the destination (e.g., compute resources).4
- "Backends for frontends" pattern5
- "Public versus Published Interfaces"6
- Asynchronous messaging
- Batch request (also known as Request Bundle pattern)
- Blackboard (design pattern)
- Circuit Breaker123
- Client–server model
- Competing Consumers pattern
- Model–view–controller
- Claim-Check pattern
- Peer-to-peer
- Publish–subscribe pattern
- Rate limiting
- Request–response
- Retry pattern 7
- Rule-based
- Saga pattern
- Strangler fig pattern
- Throttling
References
References
- Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020. ISBN 978-1492043454.
- Design Patterns: Elements of Reusable Object-Oriented Software. ISBN 978-0201633610.
- Patterns of Enterprise Application Architecture. ISBN 978-0321127426.
- Azure Storage, Streaming, and Batch Analytics. ISBN 9781638350149.
- Microservices Patterns With Examples in Java. Manning. ISBN 9781638356325.
- Fowler, Martin (March–April 2002). "Public versus Published Interfaces" (PDF). IEEE Software.
- Service Design Patterns Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley. 2012. ISBN 9780321544209.