List of software architecture styles and patterns

{{Short description|none}}

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, 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. {{Cite book |title=Design Patterns: Elements of Reusable Object-Oriented Software |isbn=978-0201633610}}{{Cite book |title=Patterns of Enterprise Application Architecture |isbn=978-0321127426}}

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.

List of software architecture styles

List of software architecture patterns

{{Main article|Architectural pattern}}

  • 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). {{Cite book |title=Azure Storage, Streaming, and Batch Analytics |isbn=9781638350149}}
  • "Backends for frontends" pattern {{Cite book |title=Microservices Patterns With Examples in Java |publisher=Manning |isbn=9781638356325}}
  • "Public versus Published Interfaces" {{Cite journal |last=Fowler |first=Martin |date=March–April 2002 |title=Public versus Published Interfaces |url=https://martinfowler.com/ieeeSoftware/published.pdf |journal=IEEE Software}}
  • Asynchronous messaging
  • Batch request (also known as Request Bundle pattern)
  • Blackboard (design pattern)
  • Client–server model
  • Competing Consumers pattern
  • Model–view–controller
  • Claim-Check pattern
  • Peer-to-peer
  • Publish–subscribe pattern
  • Rate limiting
  • Request–response
  • Retry pattern {{cite book |title=Service Design Patterns Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services |publisher=Addison-Wesley |year=2012 |isbn=9780321544209}}
  • Rule-based
  • Saga pattern
  • Strangler fig pattern
  • Throttling

See also

{{See also|Category:Software design patterns|Software design pattern|Software architecture}}

References

{{Reflist}}