Architectural/Architecture Design Patterns (ADP)
  • are Design Patterns that deal with integrating multiple services/systems together

Architectural Design Patterns

Architectural Design Patterns

Description

Example

Layered/Hierarchical Pattern

  • structure system to be decomposed into groups of subtasks, each of which is at a particular level of abstraction
  • each layer provides services to the next higher layer
  • generic application with 4 layers:
    • Presentation layer (also known as the UI layer)
    • Application layer (also known as the service layer)
    • Business logic layer (also known as the domain layer)
    • Data access layer (also known as persistence layer)
  • OSI Model (e.g. TCP/IP Stack)

Client-Server Pattern

  • consists of two parties; a server and multiple clients
    • server - listens to client requests
    • client - sends a request to the server

Master-Slave Pattern

  • consists of two parties; a master and multiple slaves
    • master -
  • database replication, the master database is regarded as the authoritative source, and the slave databases are synchronized to it

Pipe-Filter Pattern

  • structure systems that process a stream of data
  • pipe contains a sequence of filters, where each filter process the data before feeding it to the next filter
  • Compilers. The consecutive filters perform lexical analysis, parsing, semantic analysis, and code generation.
  • Workflows in bioinformatics

Peer-to-Peer Pattern

  • individual components are known as peers
  • peers may function both as a:
    • client, requesting services from other peers
    • server, providing services to other peers
  • a peer may act as a client or as a server or as both, and it can change its role dynamically with time
  • file-sharing networks such as Gnutella and G2
  • multimedia protocols such as P2PTV and PDTP

Broker Pattern

  • structure distributed systems with decoupled components
  • broker component is responsible for the coordination of communication among components

Event Bus Pattern

  • 4 major components:
    • event source, event listener, channel, and event bus

Clean Architecture & Design