Architectural Design Patterns
Overview
Design patterns are proven solutions to recurring architectural challenges. Unlike principles, which are conceptual, patterns are concrete blueprints you can apply in practice.
This section covers classic and modern patterns — from layered architecture to CQRS and strangler fig — with Java-first examples, diagrams, and case studies.
Lessons
Layered (Tiered) Architecture Pattern
Classic 3-tier and n-tier designs.
Start Lesson →Hexagonal (Ports & Adapters) Architecture Pattern
Keeping business logic independent.
Start Lesson →Onion Architecture Pattern
Domain-centric design with concentric rings.
Start Lesson →Microservices vs Modular Monolith
When to split a monolith, Conway’s Law.
Start Lesson →Event-Driven Architecture Pattern
Decoupling services with asynchronous events.
Start Lesson →Event Sourcing Pattern
Capturing state changes as immutable events.
Start Lesson →CQRS (Command Query Responsibility Segregation) Pattern
Separating reads from writes.
Start Lesson →Saga Pattern
Distributed transactions via orchestration or choreography.
Start Lesson →Strangler Fig Pattern
Incrementally replacing legacy systems.
Start Lesson →Circuit Breaker Pattern
Preventing cascading failures.
Start Lesson →API Gateway / Backend for Frontend (BFF) Pattern
Single entry point, client-specific facades.
Start Lesson →Database per Service Pattern
Microservices owning their data.
Start Lesson →