CTX-01 · Un langage par bounded context, pas de modèle universel
Signal
- Le code d’un bounded context importe une classe du domaine d’un autre bounded context (entity, aggregate, domain event), et la context map ne déclare pas ce partage.
- Un module
commonousharedqui rassemble des entities métier utilisées par plusieurs bounded contexts. - Un refactoring qui fusionne deux concepts de même nom venus de bounded contexts différents, au nom de DRY.
Pourquoi
Chaque bounded context a son propre ubiquitous language, et un même terme peut y avoir un sens différent. Viser un langage unique pour toute l’entreprise échoue.
Exceptions
Un partage déclaré dans la context map (shared kernel, MAP-03).
Correction
Chaque bounded context garde son propre modèle du concept. Les bounded contexts s’intègrent par des identités et par le public de l’autre, avec une traduction à la frontière.
Adaptation
Les building blocks de @alveolus/core (AggregateRoot, DomainEvent) ne sont pas un modèle métier. La règle ne les vise pas.