10 Common Software Architectural Patterns and Their Applications
This article introduces ten widely used software architectural patterns, explains their structure and key characteristics, and lists typical application scenarios for each, helping developers choose appropriate architectures for large‑scale enterprise systems.
This article, translated from the original piece by Vijini Mallawaarachchi, presents ten common software architectural patterns, describing their purpose, structure, advantages, and typical application scenarios.
1. Layered Pattern
The layered pattern organizes a system into separate layers, each providing services to the layer above; a typical four‑layer structure includes Presentation (UI), Application (service), Business Logic (domain), and Data Access (persistence).
Application Scenarios
General desktop applications
E‑commerce web applications
2. Client‑Server Pattern
This pattern consists of a single server providing services to multiple clients; clients request services, the server processes and returns responses while continuously listening for new requests.
Application Scenarios
Online services such as email, document sharing, and banking
3. Master‑Slave Pattern
The master‑slave pattern features a master node distributing tasks to multiple independent slave nodes, which return results that the master aggregates.
Application Scenarios
Database replication where the master DB is authoritative and syncs to slaves
Peripheral devices driving a computing system (master‑slave drivers)
4. Pipe‑Filter Pattern
This pattern builds systems that process streams of data by chaining filter components within a pipeline; each filter transforms the data and passes it downstream, optionally using buffers or synchronization.
Application Scenarios
Compilers (lexical analysis → syntax analysis → semantic analysis → code generation)
Bio‑informatics workflows
5. Proxy Pattern
The proxy pattern decouples components in distributed systems by introducing a proxy that mediates remote calls; clients interact with the proxy, which forwards requests to the appropriate service provider.
Application Scenarios
Message‑queue systems such as Apache ActiveMQ, Apache Kafka, RabbitMQ, JBoss Messaging
6. Peer‑to‑Peer (P2P) Pattern
In a P2P system, each component (peer) can act as both client and server, dynamically switching roles to provide or consume services.
Application Scenarios
File‑sharing networks such as Gnutella and G2
Multimedia protocols like P2PTV and PDTP
Personal media applications such as Spotify
7. Event Bus Pattern
The event‑bus pattern handles events through four main components: event source, event listener, channel, and the bus itself; sources publish messages to channels, listeners subscribe to channels to receive those messages.
Application Scenarios
Android development
Notification services
8. Model‑View‑Controller (MVC) Pattern
MVC separates an interactive application into three components: Model (core data and logic), View (user interface), and Controller (handles user input), promoting decoupling and code reuse.
Application Scenarios
Web application architectures in mainstream languages
Web frameworks such as Django and Rails
9. Blackboard Pattern
The blackboard pattern solves problems without a deterministic solution by using a shared global memory (the blackboard), knowledge sources (specialized modules), and a control component that selects and executes modules; all components can read/write the blackboard.
Application Scenarios
Speech recognition
Vehicle detection and tracking
Protein structure identification
Sonar signal interpretation
10. Interpreter Pattern
The interpreter pattern defines how to evaluate sentences or expressions written in a specific language, essentially parsing and executing language constructs.
Application Scenarios
Database query languages such as SQL
Domain‑specific languages for describing communication protocols
Architectural Pattern Comparison
The following table summarizes the advantages and disadvantages of each pattern.
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.