,

Architectural Patterns

CategoryPatterns
Structural( Focuses on Inner parts of the system)MVC, Layered Architecture, Client-Server Architecture, Pipe-and-Filter Architecture, Hexagonal Architecture, Microkernel Architecture
BehavioralEvent-Driven Architecture, CQRS, Event Sourcing
Landscape(Focuses on big picture of the systems)Microservices Architecture, Service-Oriented Architecture, Serverless Architecture, Domain-Driven Design

1. Structural Patterns

Structural patterns define the organization and static components of a system. They focus on modularity and maintainability.


2. Behavioral Patterns

Behavioral patterns focus on the dynamic flow of control, interactions, and data throughout the system.


3. Landscape Patterns

Landscape patterns deal with the overall deployment, scalability, and modularity of applications in distributed or enterprise-level systems.

1. Layered (n-tier) Architecture

Description: Organizes software into layers, each responsible for specific functionality.

Use Cases: Enterprise applications, e.g., CRM systems.


2. Event-Driven Architecture (EDA)

Description: Components communicate by producing and consuming events.

Types:

Use Cases: Real-time systems, IoT applications.


3. Microservices Architecture

Description: Application is built as a collection of small, autonomous services.

Use Cases: Large, scalable systems with high modularity requirements.


4. Client-Server Architecture

Description: Divides system into clients that request services and servers that provide them.

Use Cases: Web applications, email systems.


5. Event Sourcing

Description: Records all state changes as a sequence of events.

Use Cases: Financial applications, systems requiring historical tracking.


6. Microkernel Architecture

Description: Core system handles minimal operations, while plug-ins extend functionality.

Use Cases: IDEs like Visual Studio, extensible software.


7. Pipe-and-Filter Architecture

Description: Data flows through a series of processing steps (filters) connected by pipes.

Use Cases: Compilers, data processing pipelines.


8. Service-Oriented Architecture (SOA)

Description: Application functionalities are delivered as loosely coupled services.

Use Cases: Distributed systems, enterprise integration.


9. Serverless Architecture

Description: Application functions are deployed and run in cloud-managed environments without worrying about infrastructure.

Use Cases: Short-lived or event-driven tasks.


10. Hexagonal (Ports and Adapters) Architecture

Description: Focuses on separating the core logic from external systems.

Use Cases: Systems needing easy testability and integration.


11. CQRS (Command Query Responsibility Segregation)

Description: Separates read and write operations into different models.

Use Cases: Applications with high read/write disparity.


12. Domain-Driven Design (DDD)

Description: Aligns system design closely with domain concepts.

Use Cases: Complex systems with significant business logic.

Leave a comment