Présentation des Write Services¶
Vue d'ensemble¶
Les Write Services regroupent les composants responsables des modifications persistantes de la Platform.
Alors que les Read Services permettent d'observer, d'analyser et de comprendre les données sans les modifier, les Write Services exécutent des opérations qui changent durablement l'état du système.
Cette séparation entre lecture et écriture constitue un principe fondamental de l'architecture CMonChoix.
Elle permet d'isoler les opérations potentiellement destructrices des outils d'analyse et de validation.
Philosophie¶
La Platform applique une règle simple :
Observer d'abord, écrire ensuite.
Aucune modification importante ne doit être réalisée sans avoir été précédée par une phase d'analyse.
Dans la pratique, une évolution suit généralement le cycle suivant :
Audit
│
▼
Analyse
│
▼
Simulation
│
▼
Validation
│
▼
Write Service
Cette séquence permet de limiter les régressions et d'assurer la traçabilité des décisions.
Responsabilités¶
Les Write Services ont pour mission d'appliquer des décisions déjà validées.
Ils peuvent notamment intervenir pour :
- mettre à jour des données persistantes ;
- reconstruire certaines structures de données ;
- appliquer une correction validée ;
- exécuter une opération de maintenance ;
- réaliser une migration contrôlée.
Contrairement aux Read Services, ils modifient effectivement l'état de la Platform.
Ce que les Write Services ne font pas¶
Les Write Services ne doivent jamais :
- réaliser des audits ;
- comparer plusieurs stratégies ;
- produire des KPI ;
- exécuter des simulations ;
- prendre une décision métier.
Toutes ces responsabilités appartiennent aux Read Services ou au Domain Core.
Position dans l'architecture¶
Les Write Services interviennent uniquement après la phase d'analyse.
Read Services
│
▼
Validation
│
▼
Write Services
│
▼
Données persistantes
Ils constituent la dernière étape du processus d'évolution.
Invariants¶
Tous les Write Services doivent respecter les règles suivantes.
Écriture explicite¶
Une écriture ne doit jamais être implicite.
Chaque modification doit être volontaire et identifiable.
Traçabilité¶
Toute opération d'écriture doit pouvoir être expliquée.
Il doit être possible de connaître :
- son objectif ;
- son périmètre ;
- sa date d'exécution ;
- les données concernées.
Périmètre maîtrisé¶
Les opérations doivent intervenir sur un périmètre clairement défini.
Une modification globale ne doit être envisagée que lorsqu'elle est réellement nécessaire.
Réversibilité¶
Dans la mesure du possible, chaque opération doit pouvoir être annulée.
Lorsqu'un rollback n'est pas envisageable, cette limitation doit être documentée avant l'exécution.
Relation avec le Domain Core¶
Les Write Services ne contiennent pas de logique métier générique.
Ils s'appuient sur les composants du Domain Core afin d'appliquer des décisions déjà validées.
Ils ne remplacent ni le Resolver, ni la Projection, ni les modules Quality ou Health.
État actuel¶
À ce stade de l'évolution de CMonChoix, l'industrialisation repose principalement sur les Read Services.
La majorité des développements réalisés jusqu'à présent concernent :
- les audits ;
- les simulations ;
- les comparaisons ;
- les rapports de validation.
Les Write Services évolueront progressivement en fonction des besoins de maintenance et des futurs mécanismes d'administration de la Platform.
Cette approche permet de privilégier l'observation et la compréhension avant toute modification durable des données.
Principes de conception¶
Les Write Services suivent quatre principes simples :
- intervenir uniquement après validation ;
- limiter le périmètre des modifications ;
- garantir la traçabilité des opérations ;
- préserver la stabilité de la Platform.