Domain Core¶
Statut¶
Document de design cible.
Ce document décrit l'architecture attendue du Domain Core dans CMonChoix Platform V2.
Il ne décrit pas nécessairement l'état actuel du code.
Les écarts avec l'implémentation actuelle sont suivis dans migration/.
Mission¶
Le Domain Core contient la vérité métier générique de la Platform.
Il définit les concepts fondamentaux permettant de comprendre, identifier, comparer et qualifier les produits indépendamment :
- du marchand
- du feed
- du runtime
- du frontend
- de WordPress
- d'une verticale spécifique
Pourquoi ce composant existe¶
Le Domain Core existe pour éviter que la logique métier essentielle soit dispersée dans :
- le pipeline
- le frontend
- le runtime
- les règles marchand
- les patchs historiques
- les commandes CLI
Il constitue le cœur stable de la Platform.
Responsabilités¶
Le Domain Core est responsable de :
- l'identité produit générique
- les candidats d'identité
- les identifiants
- la résolution canonique
- la projection produit
- la qualité métier générique
- le scoring générique
- les conflits génériques
- les promotions génériques
- les objets métier réutilisables
Ce qui lui appartient¶
Appartiennent au Domain Core :
CandidateCanonical IdentityIdentifierProjectionResolverQualityConflictScorePromotion- règles métier génériques
- règles indépendantes du marchand
- règles indépendantes du transport technique
Ce qui lui est interdit¶
Le Domain Core ne doit jamais contenir :
- accès SQL direct
- hooks WordPress
- HTML
- logique frontend
- orchestration runtime
- batch processing
- queue
- locks
- règles spécifiques à un marchand
- patchs historiques feed par feed
- dépendance à une table WordPress
- dépendance à WP-CLI
Dépendances autorisées¶
Le Domain Core peut dépendre de :
contracts/- objets métier purs
- validateurs purs
- helpers génériques sans effet de bord
Dépendances interdites¶
Le Domain Core ne doit pas dépendre de :
- WordPress
$wpdb- frontend
- runtime
- pipeline
- interfaces
- infrastructure concrète
- admin
- HTTP endpoints
- CLI commands
- fichiers temporaires
- état global implicite
Entrées¶
Le Domain Core peut recevoir :
- données produit normalisées
- identifiants
- attributs métier
- signaux de confiance
- règles verticales fournies par les modules
- contexte métier explicite
Sorties¶
Le Domain Core peut produire :
- candidats d'identité
- identité canonique
- score de confiance
- conflits détectés
- raisons de décision
- projection métier
- état de qualité
- résultat de validation
Contrats utilisés¶
Le Domain Core doit respecter les contrats définis dans contracts/.
Contrats concernés :
- Identity Resolver
- Conflict Policy
- Projection Builder
- Quality Scorer
- Write Service lorsque la persistance est externalisée
- Registry lorsque des modules doivent être découverts
Composants internes¶
Composants attendus :
domain-core/
identity/
candidate
canonical
identifier
resolver
projection
conflicts
quality
scoring/
generic
promotions/
promotion
validator
formatter
health/
identity-health
candidate-health