Aller au contenu

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.

Voir aussi