Projection¶
Une Projection est une représentation spécialisée d'une Canonical Identity.
Elle permet à une couche consommatrice d'utiliser une identité sans connaître les détails internes du Domain Core.
Sommaire¶
- Présentation
- Pourquoi une Projection ?
- Objectifs
- Cycle de vie
- Responsabilités
- Types de projections
- Invariants
- Exemples
- Évolution future
- Voir aussi
Présentation¶
Une Projection représente une vue construite à partir d'une Canonical Identity.
Elle n'est pas une nouvelle vérité métier.
Elle ne modifie jamais la Canonical Identity.
Elle expose uniquement les informations nécessaires à un usage précis.
Pourquoi une Projection ?¶
Une même identité peut être utilisée par plusieurs composants :
- Frontend
- SEO
- API
- Read Services
- Exports
- Comparateurs
Chaque composant attend une représentation différente.
La Projection évite que chacun reconstruise sa propre logique.
Objectifs¶
Les projections poursuivent plusieurs objectifs.
Réutilisabilité¶
Une même Canonical Identity peut alimenter plusieurs représentations.
Cohérence¶
Toutes les couches consomment la même vérité métier.
Performance¶
Les données sont déjà préparées.
Les consommateurs n'ont plus besoin de recalculer la logique métier.
Découplage¶
Le Frontend ne connaît pas le Domain Core.
Il consomme uniquement des projections.
Cycle de vie¶
Canonical Identity
│
▼
Projection Builder
│
▼
Projection
│
├── Frontend
├── SEO
├── API
├── Export
├── Audit
└── Comparateur
Responsabilités¶
Une Projection est responsable de :
- préparer les données ;
- normaliser les champs ;
- masquer les détails internes ;
- fournir une représentation stable.
Elle n'est jamais responsable de :
- résoudre une identité ;
- modifier les données ;
- écrire en base ;
- appliquer une règle métier.
Types de projections¶
Projection Frontend¶
Affichage des fiches produits.
Projection SEO¶
Construction des URLs.
Balises.
Métadonnées.
Projection API¶
Consommation par des services externes.
Projection Audit¶
Utilisée par les Read Services.
Projection Export¶
Destinée aux exports externes.
Projection Comparateur¶
Prépare les données nécessaires aux comparateurs.
Invariants¶
Une Projection :
- est déterministe ;
- est reproductible ;
- ne dépend jamais d'un marchand ;
- ne modifie jamais la Canonical Identity ;
- ne contient aucune logique métier.
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 Comparateur :
Monture : EF-S
Focale : 55-250 mm
Ouverture : f/4-5.6
Évolution future¶
À terme, plusieurs familles de projections pourront coexister.
Par exemple :
- Projection IA
- Projection API publique
- Projection Mobile
- Projection Marketplace
- Projection Statistiques
Toutes utiliseront la même Canonical Identity.
Conclusion¶
La Projection constitue la frontière entre le Domain Core et les couches consommatrices.
Elle permet de conserver un Domain Core indépendant tout en offrant des représentations adaptées aux différents usages.
Voir aussi¶
- Candidate
- Resolver
- Canonical Identity
- Projection Builder Contract
- Frontend