Architectural Patterns
Overview
Architectural patterns define high-level structure of software systems and team boundaries.
Common Patterns
- Layered architecture
- Hexagonal architecture
- Event-driven architecture
- Microservices architecture
- Modular monolith
flowchart TD
UI[Presentation Layer] --> APP[Application Layer]
APP --> DOMAIN[Domain Layer]
APP --> INFRA[Infrastructure Layer]
Practical Example
A modular monolith for an insurance platform may contain independent modules for policy, claims, and billing, each with separate service interfaces and data access boundaries.
Selection Criteria
- Team size and ownership model
- Performance and scale requirements
- Compliance and audit constraints
- Deployment and release strategy
Common Pitfalls
- Choosing architecture by trend instead of context
- Ignoring migration cost and team readiness
- Creating tight coupling between modules despite boundaries
Key Takeaways
- Architecture should optimize for business change and reliability.
- Modular monolith is often an effective default.
- Pattern success depends on operational discipline.