open atlas

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.

12 units·36 lessons·~14 h

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.

Next track

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.