Aller au contenu

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 :

  • Candidate
  • Canonical Identity
  • Identifier
  • Projection
  • Resolver
  • Quality
  • Conflict
  • Score
  • Promotion
  • 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