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.

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.

List of software architecture styles

Event-driven architecture Hexagonal Architecture (also known as Ports and Adapters) Layered architecture Microkernel architecture Pipes and Filters architecture Microservices (Modular) monolithic Service-oriented architecture "Service-based architecture" 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). "Backends for frontends" pattern "Public versus Published Interfaces" Asynchronous messaging Batch request (also known as Request Bundle pattern) Blackboard (design pattern) Circuit Breaker Client–server model Competing Consumers pattern Model–view–controller Claim-Check pattern Peer-to-peer Publish–subscribe pattern Rate limiting Request–response Retry pattern Rule-based Saga pattern Strangler fig pattern Throttling

See also

:Category: Software design patterns Software design pattern Software architecture

References