Derived Modular Arch
Deep Dive

Overview

When to read deep dive and where to start.

Deep Dive is for people who already understand the basics and want answers to "why it works this way." You do not have to read it cover to cover. Pick the question that came up in review or in a debate with a teammate.

If DMA is new to you, start with What is DMA and Four invariants. You can come back here later.

Question → article

QuestionArticle
Why forbid index.ts re-exports?Why no barrel files
Why not widgets/entities like in FSD?Why two module layers
Where does the cart go — services or shared?Services vs Shared
How is DMA different from FSD?DMA vs FSD
Why a CLI if ESLint exists?Why CLI, not only linters
What does DMA not solve?What DMA does not do
Where should a new file go?Placement

If you do read it in sequence:

  1. Why two module layers — layer philosophy
  2. Why no barrel files — graph transparency
  3. Services vs Shared — the only "gray" boundary
  4. Why CLI, not only linters — enforcement
  5. DMA vs FSD — comparison with an alternative

Relation to concepts

Deep DiveBase article
Barrel filesModules and public API
Two layersLayers
Services vs SharedShared, Code evolution
CLI vs lintersTooling overview

What's next

On this page