Domain logic split into clearly bounded modules instead of one large product core.
- Why
- Clear boundaries keep complexity local and allow individual product areas to evolve independently.
- Trade-off
- More initial structure and discipline around interfaces instead of quick cross-wiring.