What Are the 7 Core Software Architecture Patterns and When to Use Them?
This article explains software architecture patterns as reusable solutions to common design problems, introduces the seven major patterns—layered, multi‑layer, pipe‑filter, client‑server, MVC, event‑driven, and microservices—detailing their context, challenges, solutions, drawbacks, and typical use cases.
Architecture patterns are reusable solutions to common problems in a given software architecture context.
Many developers still confuse or know little about the differences between various software architecture patterns.
Generally, there are seven main architecture patterns:
Layered Architecture
Multi‑Layer Architecture
Pipe‑Filter Architecture
Client‑Server Architecture
Model‑View‑Controller (MVC) Architecture
Event‑Driven Architecture
Microservices Architecture
1. Layered Architecture
The most common pattern is the layered (n‑tier) architecture, typically consisting of four layers: presentation, business, persistence, and database.
Complex systems evolve independently, so developers need clear separation of concerns so modules can be developed and maintained independently.
Each layer has a specific role; for example, the presentation layer handles the user interface.
The pattern is a technical partitioning, not a domain partitioning.
Layers are either closed or open; a request must pass through each lower layer without skipping.
Weaknesses: performance degradation due to multiple layers, higher initial cost and complexity.
Best suited for small, simple applications or websites with tight budget and time constraints.
2. Multi‑Layer Architecture
Similar to layered architecture but emphasizes distribution across multiple physical machines or sub‑systems.
It incurs high upfront cost and complexity.
Applicable to distributed systems.
3. Pipe‑Filter Architecture
This pattern treats a system as a series of filters connected by pipes, useful for transforming streams of data.
Producer ( source): start of the process.
Transformer ( map): converts data.
Tester ( reduce): evaluates conditions.
Consumer ( sink): end of the process.
Weaknesses: not ideal for interactive systems, performance loss due to parsing, and added complexity of filters.
Typical uses include ETL tools, compilers, and any task that simplifies single‑step processing.
4. Client‑Server Architecture
Clients send requests to servers and wait for responses; servers process requests and reply.
Weaknesses: server can become a performance bottleneck and a single point of failure; moving functionality between client and server can be costly.
Used for online applications such as email, document sharing, or banking services.
5. Model‑View‑Controller (MVC) Architecture
MVC separates an application into three components:
Model – holds the data.
View – displays data and interacts with the user.
Controller – mediates between model and view and manages state changes.
Weaknesses: added complexity may not be justified for simple UIs; some UI toolkits may not fit the abstraction.
Commonly used for web and mobile application user interfaces.
6. Event‑Driven Architecture
Provides compute and information resources to handle independent asynchronous events, scaling from small to large systems.
Events are placed in queues; schedulers dispatch them to appropriate processors.
Weaknesses: performance and error recovery challenges.
Typical use case: e‑commerce order processing where an OrderCreated event triggers credit reservation, etc.
Example flow:
Order Service creates an order and publishes an OrderCreated event.
Customer Service receives the event, attempts to reserve credit, and publishes either a Credit Reserved event or a CreditLimitExceeded event.
Order Service receives the response event and updates the order status accordingly.
7. Microservices Architecture
Large monolithic applications are broken into independent services, each with its own API boundary, database, and possibly different programming languages.
Weaknesses: need for fault tolerance, extensive monitoring, orchestration overhead, and higher costs.
Ideal for scenarios with massive data pipelines, such as retail sales reporting where each step (collection, cleaning, aggregation, reporting) is handled by a separate microservice.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITFLY8 Architecture Home
ITFLY8 Architecture Home - focused on architecture knowledge sharing and exchange, covering project management and product design. Includes large-scale distributed website architecture (high performance, high availability, caching, message queues...), design patterns, architecture patterns, big data, project management (SCRUM, PMP, Prince2), product design, and more.
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.
