Vertical Slicing Architectures


Details
Throughout the years, the Concentric Architectures (Onion, Hexagonal, Clean-..) have grown into the undisputed leader among backend systems architectures. With the rise of Domain-Driven Design, keeping your Domain ring 'agnostic' to the outside world has become the norm today. But history proved that any 'norm' in software architectures will cause overengineering if applied without criticism.
After a brief recap of these architectures, their pitfalls, and weaknesses, we'll see two alternatives that segregate code not in 'layers' or 'rings' but in vertical slices: Feature Slicing and Modular Monolith.
[Feature Slicing](vertical Slice Architecture) (aka *UseCase) has its own pitfalls and weaknesses, that we'll briefly review. But this will just warm us up for the next style.
Modular Monolith (aka Modulith) is an architecture style that helped many companies break their legacy codebases, and smoothly move to microservices. Most of the techniques discussed here can also come handy when one single microservice grew big and needs to be broken down.
Even more, greenfield projects today opt for this architecture instead of microservices, to avoid paying the high cost of distributability. Imagine cohesive but decoupled modules living in the same code base & deployment, but on which different teams work in harmony, delivering more value much faster than an equivalent microservice ecosystem.🦄
On the agenda:
- patterns to break data structures
- how to protect Domains inside modules
- communication patterns between modules
- breaking cyclic dependencies
If you never heard of the Onion/Hexagonal/Ports-and-adapters/Clean Architecture, you probably need to read a bit ahead to be able to follow.
So here are some optional prep materials:
- Clean Architecture - Uncle Bob's Article
- Pragmatic Clean Architecture - my own little talk
- Overview of Architectures (with a superb picture) - article by Roberto Graca
- Progressive breakdown of a Majestic Monolith: a brilliant talk by Axel Fontaine
- Modular Monoliths - a talk by Simon Brown
The meeting will be held on Zoom, but also live-streamed on YouTube here: https://youtu.be/H7HWOlANX78

Vertical Slicing Architectures