List of software architecture styles and patterns

Short description: none

A software 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.[1][2][3]

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, and Event-Driven Architecture.[1][2][3]

## Contents

* 1 List of software architecture styles
* 2 List of software architecture patterns
* 3 See also
* 4 References

## List of software architecture styles

* Event-driven architecture
* Hexagonal Architecture (also known as Ports and Adapters)
* Layered architecture
* Microkernel architecture[1]
* Pipes and Filters architecture[1]
* 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" pattern[5]
* "Public versus Published Interfaces"[6]
* Asynchronous messaging
* Batch request (also known as Request Bundle pattern)
* Blackboard (design pattern)
* Circuit Breaker[1][2][3]
* 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

## See also

* Category: Software design patterns
* Software design pattern
* Software architecture

## References

1. ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020. ISBN 978-1492043454.
2. ↑ 2.0 2.1 2.2 Design Patterns: Elements of Reusable Object-Oriented Software. ISBN 978-0201633610.
3. ↑ 3.0 3.1 3.2 Patterns of Enterprise Application Architecture. ISBN 978-0321127426.
4. ↑ Azure Storage, Streaming, and Batch Analytics. ISBN 9781638350149.
5. ↑ Microservices Patterns With Examples in Java. Manning. ISBN 9781638356325.
6. ↑ Fowler, Martin (March–April 2002). "Public versus Published Interfaces". IEEE Software. https://martinfowler.com/ieeeSoftware/published.pdf.
7. ↑ Service Design Patterns Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley. 2012. ISBN 9780321544209.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/List of software architecture styles and patterns. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=List_of_software_architecture_styles_and_patterns&oldid=4346401"