Architectural Patterns
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope.
- Layered pattern
- Client-server pattern
- Master-slave pattern
- Pipe-filter pattern
- Broker pattern
- Peer-to-peer pattern
- Event-bus pattern
- Model-view-controller pattern
- Blackboard pattern
- Interpreter pattern
Layered pattern: for desktop app, e-commerce web app
- Presetation layer
- Application layer
- Business logic layer
- Data access layer
Client-server pattern: email, docs sharing and banking
Master-slave pattern: database replication, Peripherals connected to a bus in a computer system
Pipe-filter pattern: Compilers, Workflow
Broker pattern: Message broker queue,
Peer-to-peer pattern: File-sharing networks, Multimedia protocols
Event-bus pattern: Android development, Notification services
o event source, event listener, channel and event bus
o Listeners subscribe to particular channels.
Model-view-controller pattern: For web app
Blackboard pattern: Speech recognition, Vehicle identification and tracking, Protein structure identification
o Blackboard
o knowledge source
o control component
Interpreter pattern
o Database query languages
o Languages used to describe communication protocols.
Ref: https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013