Aller au contenu

Vertical Modules

Statut

Document de design cible.

Ce document décrit l'architecture attendue des Vertical Modules 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

Les Vertical Modules contiennent les règles métier spécifiques à chaque verticale produit.

Ils étendent le Domain Core sans le polluer.


Pourquoi ce composant existe

Les produits ne se comparent pas tous de la même manière.

Un smartphone, un appareil photo, une télévision, une imprimante, une console ou un jouet n'ont pas les mêmes attributs, les mêmes conflits et les mêmes règles d'identité.

Les Vertical Modules existent pour isoler ces différences métier.


Responsabilités

Les Vertical Modules sont responsables de :

  • définir les attributs spécifiques d'une verticale
  • enrichir l'identité produit avec des règles verticales
  • détecter les conflits propres à une verticale
  • fournir un scoring spécialisé
  • compléter les projections produit
  • exposer les règles métier verticales via des contrats
  • protéger le Domain Core contre la logique spécifique

Ce qui leur appartient

Appartiennent aux Vertical Modules :

  • règles smartphone
  • règles photo
  • règles TV
  • règles gaming
  • règles impression
  • règles mobilité
  • règles jouets
  • attributs techniques propres à une verticale
  • scoring spécifique
  • conflits spécifiques
  • règles de comparaison propres à une famille produit

Ce qui leur est interdit

Les Vertical Modules ne doivent jamais contenir :

  • orchestration runtime globale
  • accès SQL direct non encapsulé
  • rendu HTML
  • hooks WordPress
  • commandes CLI
  • logique de synchronisation feed
  • patchs marchands non documentés
  • règles frontend
  • décisions humaines de gouvernance

Dépendances autorisées

Les Vertical Modules peuvent dépendre de :

  • contracts/
  • domain-core/
  • validateurs purs
  • objets métier verticaux
  • règles génériques de scoring ou qualité

Dépendances interdites

Les Vertical Modules ne doivent pas dépendre de :

  • WordPress
  • $wpdb
  • frontend
  • runtime
  • interfaces
  • admin
  • HTTP endpoints
  • CLI commands
  • fichiers temporaires
  • état global implicite

Entrées

Un Vertical Module peut recevoir :

  • candidat produit
  • identité partielle
  • attributs normalisés
  • contexte vertical explicite
  • signaux de confiance
  • résultat de parsing préparé par le pipeline

Sorties

Un Vertical Module peut produire :

  • attributs verticaux
  • score vertical
  • conflits verticaux
  • enrichissement d'identité
  • projection verticale
  • raisons de décision
  • état de qualité vertical

Contrats utilisés

Les Vertical Modules doivent respecter les contrats Platform.

Contrats concernés :

  • Module Contract
  • Vertical Descriptor
  • Registry
  • Identity Resolver
  • Conflict Policy
  • Projection Builder
  • Quality Scorer

Composants internes

Organisation cible :

vertical-modules/

smartphone/
  module
  identity
  scoring
  conflicts
  attributes

photo/
  module
  identity
  scoring
  conflicts
  attributes

tv/
  module
  identity
  scoring
  attributes

gaming/
  module
  identity
  scoring
  attributes

printer/
  module
  identity
  scoring
  attributes