Projection Builder Contract¶
Le contrat Projection Builder définit comment une Canonical Identity est transformée en une représentation exploitable par une couche consommatrice.
Une projection n'est jamais une nouvelle vérité métier. Elle est une vue construite à partir de la Canonical Identity.
Sommaire¶
- Rôle
- Pourquoi ce contrat ?
- Entrées
- Sorties
- Responsabilités
- Types de projections
- Cycle de construction
- Contraintes
- Garde-fous
- Exemples
- État actuel
- Voir aussi
Rôle¶
Le Projection Builder transforme une Canonical Identity en une représentation adaptée à un besoin précis.
Il ne modifie jamais l'identité.
Il la présente sous une forme exploitable.
Pourquoi ce contrat ?¶
Les consommateurs d'une identité ne recherchent pas tous les mêmes informations.
Par exemple :
- le Frontend souhaite afficher une fiche produit ;
- le moteur SEO souhaite construire des URLs ;
- un comparateur souhaite afficher des différences ;
- un export souhaite produire un fichier normalisé.
Tous utilisent la même Canonical Identity mais des projections différentes.
Entrées¶
Le Projection Builder peut recevoir :
- Canonical Identity ;
- Variants ;
- Attributs normalisés ;
- Quality Score ;
- Promotion ;
- Health Report ;
- Métadonnées de contexte.
Sorties¶
Une projection peut produire :
- un titre ;
- une description ;
- des attributs affichables ;
- une structure SEO ;
- une structure de comparaison ;
- une représentation API ;
- une représentation d'audit.
Responsabilités¶
Le Projection Builder est responsable de :
- construire une vue cohérente ;
- conserver la stabilité des champs ;
- normaliser les formats de sortie ;
- masquer les détails internes inutiles.
Il n'est pas responsable de :
- résoudre une identité ;
- modifier des données métier ;
- recalculer un score ;
- appliquer une règle de verticale.
Types de projections¶
Plusieurs familles de projections peuvent coexister.
Projection Frontend¶
Destinée à l'affichage utilisateur.
Projection SEO¶
Destinée aux URLs, balises et contenus indexables.
Projection Comparaison¶
Destinée aux comparateurs produits.
Projection Export¶
Destinée aux exports externes.
Projection Audit¶
Destinée aux Read Services.
Projection API¶
Destinée aux futurs services externes.
Cycle de construction¶
Canonical Identity
│
▼
Projection Builder
│
▼
Projection
│
├── Frontend
├── SEO
├── API
├── Audit
└── Export
Contraintes¶
Une projection doit toujours :
- être déterministe ;
- être reproductible ;
- être stable ;
- rester indépendante du Frontend.
Deux appels identiques doivent produire exactement la même projection.
Garde-fous¶
Le Projection Builder ne doit jamais :
- modifier la Canonical Identity ;
- créer une nouvelle identité ;
- recalculer les règles métier ;
- masquer un conflit ;
- appliquer une policy de verticale.
Les Vertical Modules peuvent enrichir les données disponibles, mais jamais modifier le fonctionnement générique du Projection Builder.
Exemple Smartphone¶
Canonical Identity :
Apple
iPhone 16 Pro
256 Go
Titanium Black
Projection Frontend :
Apple iPhone 16 Pro 256 Go - Titane noir
Projection SEO :
/apple/iphone-16-pro-256-go-titane-noir/
Exemple Photo¶
Canonical Identity :
Canon
EF-S
55-250 mm
f/4-5.6 IS STM
Projection Frontend :
Canon EF-S 55-250 mm f/4-5.6 IS STM
Projection Comparaison :
Monture : EF-S
Focale : 55-250 mm
Ouverture : f/4-5.6
État actuel¶
Les projections existent aujourd'hui sous plusieurs formes dans CMonChoix.
Le Projection Builder a pour objectif de les unifier progressivement autour d'un contrat commun, partagé par toutes les verticales.
Le comportement reste entièrement compatible avec le runtime historique tant que la migration n'est pas terminée.