Architectural Styles and Patterns

A system can consist of multiple styles and patterns.

Architectural Styles

A style is a family of architectures that share certain characteristics. An architectural style gives a name to a recurrent architectural design.

Examples of Architectural Styles:

  • N-tier
  • Microservices

Architectural Patterns

An architectural pattern is a way to solve a recurring architectural problem.

Examples of Architectural Patterns:

  • Three-tier

Explain:

  • What problem is the three-tier pattern solve?

Software Design Patterns

A software design pattern is a reusable solution and best practices to a recurring problem in software design.

  • Model–view–controller (usually known as MVC) is a software design pattern (according to Wikipedia)

Sort the following terms:

  • Single Page Application (SPA)

Some architectural patterns and styles:

  • Blackboard
  • Client-server (2-tier, 3-tier, n-tier, cloud computing exhibits this style)
  • Component-based
  • Data-centric
  • Event-driven (or implicit invocation)
  • Layered (or multilayered architecture)
  • Microservices architecture
  • Monolithic application
  • Model-view-controller (MVC)
  • Peer-to-peer (P2P)
  • Pipes and filters
  • Plug-ins
  • Reactive architecture
  • Representational state transfer (REST)
  • Rule-based
  • Service-oriented
  • Shared nothing architecture
  • Space-based architecture

(Source Wikipedia)

Email: FW: Cloud Design Patterns and Performance Antipatterns

  • Backend Services
    • Gateway Routing
    • Gateway Aggregation
    • Backend for Frontend
    • Retry
    • Circuit Breaker
  • Optimized Data Read
    • CQRS
    • Materialized View
  • Event Driven Architecture
    • Publish-Subscriber
    • Queue-Based Load Leveling
    • Competing Consumers
    • Priority Queue
    • Sequential Convoy
  • Support Services
    • External Configuration Store
    • Health Endpoint Monitoring
    • Gatekeeper
    • Federated Identity
  • Transaction in a Distributed Environment
    • Compensating Transaction
    • Saga Distributed Transaction
  • Migrating Legacy Systems
    • Anti-Corruption Layer
    • Strangler

https://medium.com/@mlbors/architectural-styles-and-architectural-patterns-c240f7df88a0

 

  • Architectural Style
    • gives a name to a recurrent Architectural Design
    • It doesn’t exist to solve a problem.
    • Styles: Domain Driven Design, Pipes and Filters
    • Building: Architectural Style is characterized by the features that make a building notable and historically identifiable
  • Architectural Patterns
    • is a way to solve a recurring architectural problem
    • are high-level strategies that concern large-scale components, the global properties and mechanisms of a system
    • purpose is to understand how the major parts of the system fit together
    • Patterns: Layered, Event Driven,
  • (Software) Design Patterns 
    • impact a specific section of the code base

 

Architectural Style vs. Architectural Pattern

  • A single architecture can contain several Architectural Styles, and each Architectural Style can make use of several Architectural Patterns. An Architecture Patterns can be a subset of an Architectural Styles targeting a specific scope.

Architectural Pattern vs. Design Pattern

  • Architectural Patterns are similar to Design Patterns, but they have a different scope.

https://www.geeksforgeeks.org/difference-between-architectural-style-architectural-patterns-and-design-patterns/

  • Design patterns
    • are accumulative best practices and experiences that software professionals used over the years to solve the general problem they faced during software development