🏛️ 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 →
  1. 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.Beginner5 min read
  2. 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.Beginner5 min read
  3. 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.Beginner5 min read
  4. 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.Intermediate7 min read
  5. 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.Intermediate7 min read
  6. 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.Intermediate5 min read
  7. 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.Intermediate7 min read
  8. 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.Advanced7 min read
  9. 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.Intermediate6 min read
  10. 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.Intermediate5 min read
  11. 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.Intermediate5 min read
  12. 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.Intermediate6 min read
  13. 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.Intermediate6 min read