RFC-003 --- Publication & Business Events
Statut
Draft
Auteur
Architecture DMV
ADR de référence
- ADR-014 --- Bounded Contexts and Modular Monolith
Résumé
Faire de Publication le seul Bounded Context responsable de la diffusion des contenus et standardiser les échanges entre contextes au moyen d'événements métier immuables.
1. Problème
Aujourd'hui, plusieurs modules publient ou déclenchent directement des comportements chez d'autres modules.
Conséquences :
- dépendances fortes ;
- écritures croisées ;
- couplage métier ;
- difficulté à faire évoluer les fonctionnalités.
2. Contexte
Les autres Bounded Contexts produisent des faits métier.
Publication décide ensuite :
- si le contenu devient public ;
- où il est diffusé ;
- sous quelle forme ;
- vers quels canaux.
Les événements métier deviennent le contrat standard entre contextes.
3. Objectifs
- supprimer les appels directs entre contextes ;
- rendre les échanges explicites ;
- permettre l'ajout de nouveaux consommateurs sans modifier l'émetteur ;
- préparer les futures notifications, recherches, IA et analytics.
4. Hors périmètre
- choix du bus technique ;
- implémentation Outbox ;
- notifications utilisateur ;
- moteur de recherche.
5. Décision
Les Bounded Contexts publient uniquement des Business Events.
Exemples :
MunicipalAlertPublished
AssociationEventCreated
ActorProfileUpdated
PublicationCreated
PublicationArchived
Les événements :
- sont immuables ;
- décrivent un fait métier passé ;
- ne contiennent pas de logique.
Publication devient le propriétaire exclusif de la diffusion publique.
6. Alternatives étudiées
Appels directs entre services
Rejetée.
Elle crée un couplage fort.
Partage de tables
Rejetée.
Elle viole les frontières des Bounded Contexts.
7. Impact
Les nouveaux modules (Coach, AssoSuite, MairieSuite...) pourront publier des événements sans connaître les consommateurs.
Les consommateurs pourront évoluer indépendamment.
8. Plan de migration
Étape 1
Inventorier tous les appels inter-contextes.
Étape 2
Identifier les Business Events manquants.
Étape 3
Remplacer progressivement les appels directs par des événements.
Étape 4
Faire de Publication le point d'entrée unique pour la diffusion publique.
9. Rollback
Chaque remplacement est réalisé indépendamment.
En cas de problème, le producteur peut temporairement revenir à son implémentation précédente.
10. Critères de succès
- plus aucun appel métier direct entre Bounded Contexts ;
- Publication est seul responsable de la diffusion ;
- tous les échanges métier passent par des événements ou des contrats publiés ;
- les événements sont documentés et versionnés.
11. Risques
- multiplication d'événements redondants ;
- événements trop techniques au lieu d'être métier ;
- consommateurs oubliés lors de la migration.
12. Questions ouvertes
- convention de nommage des événements ;
- politique de versionnement ;
- durée de rétention ;
- stratégie de rejeu.
Historique
Date Auteur Modification
2026-07 Architecture DMV Création