Principes¶
Les principes constituent les règles fondamentales qui guident toutes les décisions d'architecture de CMonChoix Platform.
Sommaire¶
- Pourquoi des principes ?
- Les principes fondamentaux
- Séparation des responsabilités
- Modularité
- Réutilisabilité
- Testabilité
- Compatibilité
- Industrialisation
- Voir aussi
Pourquoi des principes ?¶
Une architecture n'est durable que si toutes les décisions techniques suivent les mêmes règles.
Les principes présentés dans ce document servent de référence lors de chaque évolution du projet.
Ils permettent d'éviter les régressions, les dépendances inutiles et les choix contradictoires.
Les principes fondamentaux¶
1. Une responsabilité unique¶
Chaque composant possède une responsabilité clairement définie.
Par exemple :
- le Domain Core définit les concepts métier ;
- les Vertical Modules apportent les règles spécifiques ;
- le Pipeline transforme les données ;
- le Runtime orchestre les traitements ;
- le Frontend affiche les informations.
Une couche ne doit jamais réaliser le travail d'une autre.
2. Une seule source de vérité¶
Chaque information métier importante possède une seule source officielle.
Exemples :
| Information | Source |
|---|---|
| Canonical Identity | Domain Core |
| Quality Score | Domain Core |
| Promotions | Promotions |
| Health | Health |
| Projection | Projection |
Toute duplication est interdite sauf justification explicite.
3. Séparation des responsabilités¶
Les responsabilités doivent rester clairement isolées.
Feeds
│
▼
Pipeline
│
▼
Domain Core
│
▼
Runtime
│
▼
Frontend
Chaque couche ne connaît que ce qu'elle doit connaître.
4. Modularité¶
Chaque module doit pouvoir évoluer indépendamment.
Par exemple, une nouvelle verticale ne doit jamais nécessiter une modification du Domain Core.
5. Réutilisabilité¶
Tout composant générique doit pouvoir être partagé entre plusieurs verticales.
Une logique utilisée uniquement par une verticale n'a pas sa place dans le Core.
6. Testabilité¶
Chaque composant doit pouvoir être testé indépendamment.
Les Read Services permettent :
- les audits ;
- les comparaisons ;
- les simulations ;
- les rapports.
Sans modifier les données.
7. Compatibilité¶
Les migrations doivent rester progressives.
Le legacy continue de fonctionner tant que le nouveau système n'est pas entièrement validé.
Les wrappers et les shims assurent cette compatibilité.
8. Industrialisation¶
Toute évolution doit pouvoir être reproduite.
Les validations reposent systématiquement sur :
- des KPI ;
- des audits ;
- des comparaisons avant/après ;
- des sauvegardes ;
- un rollback simple.
Ce que ces principes interdisent¶
Les principes interdisent notamment :
- d'ajouter une règle métier dans le Frontend ;
- de placer une logique de verticale dans le Domain Core ;
- de recalculer une information déjà disponible ;
- d'introduire une dépendance circulaire ;
- de mélanger lecture et écriture ;
- de modifier directement une donnée sans procédure adaptée.
Conclusion¶
Ces principes garantissent une architecture :
- stable ;
- maintenable ;
- évolutive ;
- réutilisable ;
- industrialisable.
Ils constituent la base de toutes les décisions techniques prises dans CMonChoix Platform.
Voir aussi¶
- Vision
- Invariants
- Dépendances
- Identifier First
- Domain Core