Fundamentals 9 min read

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.

Architecture Digest
Architecture Digest
Architecture Digest
10 Common Software Architectural Patterns and Their Applications

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.

design patternssoftware architectureMVClayered architectureInterpreterClient-Serverevent busblackboard
Architecture Digest
Written by

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.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.