architecture-patterns
Architecture Patterns
How to structure an application so it survives change — coupling and cohesion, dependency direction, hexagonal and clean architecture, DDD, CQRS, event sourcing, and decomposing a monolith without building a distributed one.
Start track → 00
Start here
What architecture actually is, and the frame — fitness for forces — you carry into every structural decision. 01
Coupling and cohesion
The two forces every structural decision trades between: how parts depend on each other, and how focused each part is. 02
Dependency direction
Who is allowed to know about whom — the dependency rule, and how to invert it when it points the wrong way. 03
Layered architecture
The n-tier default everyone starts with, why it is reasonable, and exactly where it leaks. 04
Hexagonal architecture
Ports and adapters: invert the boundary so the domain owns the contract and the outside world plugs in. 05
Clean and onion architecture
The concentric dependency rule, use-case interactors, and the entity core — and the boilerplate tax it charges. 06
Domain-driven design
Model the business so the model is the architecture: bounded contexts, ubiquitous language, aggregates, and the strategic map. 07
CQRS
Split the write model from the read model — what it buys, what it costs, and when the split is overkill. 08
Event sourcing
The event log as the source of truth — state as a fold over events — and the traps that come with it. 09
Event-driven architecture
Structuring a system around things that happened: choreography vs orchestration, sagas, and eventual consistency as a design choice. 10
Decomposition
One app or many, and how to get from one to the other without accidentally building a distributed monolith. 11
Evolution and decisions
Architecture is a verb — ADRs, fitness functions, and reasoned tradeoff analysis that change it on purpose.Build with this track
Guided projects that exercise what you learn here.
Code patterns & craft
Code is read far more than it is written. Learn the craft that keeps a codebase changeable — naming, SOLID, code smells, and safe refactoring — plus the judgment to know when an abstraction earns its keep.