Software Architecture
Layered, MVC/MVVM, Clean Architecture, Hexagonal (Ports & Adapters), Onion, Domain-Driven Design, event-driven, microkernel, serverless, vertical slices and the modular monolith, plus how to choose between them.
13 lessons · about 1.3 hours
Start the first lesson →- 01What Is Software Architecture? Architecture is the set of big decisions that are expensive to change later. Learn quality attributes, trade-offs, the main architecture styles, and how to record decisions with ADRs.
- 02Layered (N-Tier) Architecture The classic way to organise an application into presentation, business and data layers. How it works, its rules, the famous "architecture sinkhole", and when it's the right choice.
- 03MVC, MVP & MVVM Three patterns for separating what the user sees from the data and logic behind it. How each works, how data flows, and where you meet them in Rails, Express, Angular, Vue and React.
- 04Clean Architecture in Depth Uncle Bob's four circles explained properly. Entities, use cases, input and output ports, presenters, crossing boundaries with DTOs, "screaming" folder structure, testing, and common mistakes, with a full TypeScript example.
- 05Hexagonal Architecture (Ports & Adapters) Put the application in the centre and plug everything else in through ports and adapters. Driving vs driven sides, a complete TypeScript example, testing with fake adapters, and how to structure the folders.
- 06Onion Architecture & Clean vs Hexagonal vs Onion Jeffrey Palermo's Onion Architecture layer by layer, then a clear side-by-side comparison of Clean, Hexagonal and Onion, showing what's really different and what is the same idea drawn three ways.
- 07Domain-Driven Design: Strategic Design DDD's big-picture tools. Domains and subdomains, ubiquitous language, bounded contexts, all the context-mapping patterns, and event storming to discover them.
- 08Domain-Driven Design: Tactical Patterns The building blocks for modelling rules in code. Entities, value objects, aggregates and their four rules, repositories, domain services, application services, domain events and factories, all in TypeScript.
- 09Event-Driven Architecture Build systems where components react to events instead of calling each other. Broker vs mediator topologies, the four kinds of event patterns, event design, and the real trade-offs.
- 10Microkernel (Plugin) Architecture A small, stable core plus independent plug-ins that add features. How VS Code, browsers, Webpack and ESLint are built, how to design a plug-in contract, and the pitfalls.
- 11Serverless Architecture Run code without managing servers. Functions as a Service, event triggers, cold starts, pay-per-use pricing, managed backends, and the patterns and limits you need to know.
- 12Vertical Slice Architecture & the Modular Monolith Organise code by feature instead of by technical layer, and split a monolith into well-bounded modules that can later become services. Folder structures, rules, and how to enforce boundaries.
- 13Choosing an Architecture A practical decision guide. Compare every style in this course on one page, match them to your team, domain and scale, see how they combine, and learn how to evolve an architecture over time.