List Of Software Architecture Styles And Patterns
   HOME

TheInfoList



OR:

Software Architecture Pattern refers to 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 In software engineering, a software design pattern or design pattern is a general, reusable solution to a commonly occurring problem in many contexts in software design. A design pattern is not a rigid structure to be transplanted directly into s ...
, 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 A circuit breaker is an electrical safety device designed to protect an Electrical network, electrical circuit from damage caused by current in excess of that which the equipment can safely carry (overcurrent). Its basic function is to interr ...
. Software Architecture Style refers to 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 In software engineering, a microservice architecture is an architectural pattern that organizes an application into a collection of loosely coupled, fine-grained services that communicate through lightweight protocols. This pattern is characterize ...
, and
Event-Driven Architecture Event-driven architecture (EDA) is a software architecture paradigm concerning the production and detection of Event (computing), events. Event-driven architectures are Continuous design, evolutionary in nature and provide a high degree of fault to ...
.


List of software architecture styles

*
Event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm concerning the production and detection of Event (computing), events. Event-driven architectures are Continuous design, evolutionary in nature and provide a high degree of fault to ...
* Hexagonal Architecture (also known as Ports and Adapters) * Layered architecture * Microkernel architecture * Pipes and Filters architecture *
Microservices In software engineering, a microservice architecture is an architectural pattern that organizes an application into a collection of loosely coupled, fine-grained services that communicate through lightweight protocols. This pattern is characterize ...
* (Modular) monolithic *
Service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
* "Service-based architecture" * Space-based architecture


List of software architecture patterns

*
Inbox and outbox pattern {{Orphan, date=April 2023 The inbox pattern and outbox pattern are two related patterns used by applications to persist data (usually in a database) to be used for operations with guaranteed delivery. The inbox and outbox concepts are used in the ...
* "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) *
Client–server model The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate ov ...
* Competing Consumers pattern *
Model–view–controller Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are: * the model, the internal representat ...
* Claim-Check pattern * Peer-to-peer * Publish–subscribe pattern * Rate limiting *
Request–response In computer science, request–response or request–reply is one of the basic methods computers use to communicate with each other in a network, in which the first computer sends a ''request'' for some data and the second ''responds'' to the req ...
* Retry pattern * Rule-based * Saga pattern * Strangler fig pattern * Throttling


See also


References

{{Reflist