Onion, Hexagonal, Clean or Fractal Architecture? All of them, and more!
summary
Combines Onion/Hexagonal/Clean with slices in slices to evolve architecture feature by feature, implemented in a .NET/Azure stack (ASP.NET controllers, Azure Functions), F# for core logic, event sourcing for some aggregates, and SQL schemas per domain. TimeRocket (attendance/time tracking) uses subsystems (employment, attendance, undertaking, etc.), limits each module to ~6–7 “chunks”, keeps shared code in the nearest parent slice, and swaps adapters via dependency inversion; approach is live in production and reduces needless interfaces while improving navigability.
AI-written summary · about
chapters (16)
- 0:00Software architecture evolution
- 1:08Layered architectures necessity
- 3:14Layering trade-offs
- 5:04Hexagonal ports and adapters
- 7:11Onion concentric layers
- 10:02Clean generic layers
- 12:56Clean architecture limitations
- 14:03Vertical slices and features
- 17:20Fractal architecture intro
- 23:47Time Rocket subsystems
- 27:27Shared code in slices
- 30:40Layers and slices combined
- 33:32Project structure and dependencies
- 37:20Slicing UI and database
- 38:45Architecture summary
- 39:49Q&A
related talks
31mArchitecting Onion Style Without Making Your Eyes Water
45mWhy Hexagonal and Onion Architecture Are Answers to The Wrong Question
40mRecipe to go from Onion-Clean Architecture to Vertical Slice Architecture
40mDDD, CQRS, Hexagonal, Onion,... Putting it together
51mHexagonal Architecture to the rescue
51mDomain-centric? Why Hexagonal- and Onion-Architecture are answers to the wrong question
41mArchitecture aspects - evolutionary architecture development
47mHexagonal Architecture in Practice, Live Coding That Will Make Your Applications More Sustainable
