RFC-007 — Product Boundaries
Statut
Draft
Auteur
Architecture DMV
ADR de référence
- ADR-000 — DMV Core & Modular Applications
- ADR-013 — Workspace as a Private Administration Application
- ADR-014 — Bounded Contexts and Modular Monolith
Résumé
Définir les frontières entre DMV Core et les applications de la plateforme afin de garantir qu'aucun produit ne devienne propriétaire du métier.
Les applications utilisent DMV Core. Elles ne le remplacent jamais.
1. Problème
Avec la multiplication des produits (DMV Public, Workspace, MairieSuite, AssoSuite, Coach…), un risque apparaît :
- dupliquer la logique métier ;
- créer des API spécifiques à chaque produit ;
- faire dériver les modèles ;
- créer plusieurs vérités métier.
À terme, chaque produit évoluerait indépendamment et la plateforme perdrait sa cohérence.
2. Contexte
DMV est une plateforme.
Les produits ne sont que différentes portes d'entrée vers les mêmes capacités métier.
Exemples :
- un acteur peut être administré depuis Workspace ;
- la même donnée peut être affichée dans DMV Public ;
- MairieSuite manipule les capacités municipales ;
- AssoSuite manipule les capacités associatives.
Le métier reste unique.
3. Objectifs
- garantir une seule source de vérité métier ;
- empêcher les produits de posséder leurs propres règles métier ;
- permettre l'ajout de nouveaux produits sans modifier DMV Core ;
- assurer une expérience cohérente quel que soit le canal.
4. Hors périmètre
- UX ;
- Design System ;
- déploiement ;
- authentification ;
- stratégie commerciale.
5. Décision
Chaque produit devient une application spécialisée.
DMV Public
Responsable de :
- consultation publique ;
- découverte ;
- navigation ;
- recherche ;
- expérience citoyenne.
Il ne possède aucun métier.
Workspace
Responsable de :
- administration quotidienne des acteurs ;
- gestion opérationnelle.
Il utilise exclusivement les cas d'usage de DMV Core.
Backoffice
Responsable de :
- supervision ;
- modération ;
- support ;
- opérations internes.
Il n'est pas propriétaire du métier.
MairieSuite
Responsable de l'expérience de gestion municipale.
Elle utilise :
- Municipal Management ;
- Publication ;
- Actor ;
- Territory ;
- Authorization.
Elle ne possède pas les données métier.
AssoSuite
Responsable de l'expérience de gestion associative.
Elle utilise :
- Actor ;
- Community ;
- Publication ;
- Authorization ;
- futurs modules associatifs.
Coach
Responsable de l'expérience de coaching.
Il possède son propre domaine métier.
Il peut toutefois consommer certaines capacités communes de DMV Core lorsque cela est pertinent (identité, notifications, paiements, etc.).
6. Alternatives étudiées
Un backend par produit
Rejetée.
Le métier serait rapidement dupliqué.
Un produit propriétaire de son métier
Rejetée.
Les autres applications ne pourraient plus réutiliser les mêmes capacités.
7. Impact
Les nouveaux produits deviennent beaucoup plus simples à développer.
Ils se concentrent uniquement sur :
- leur interface ;
- leur expérience utilisateur ;
- leur orchestration.
8. Plan de migration
Étape 1
Identifier les responsabilités actuelles de chaque application.
Étape 2
Déplacer les règles métier vers les Bounded Contexts.
Étape 3
Supprimer les API spécifiques lorsqu'elles ne sont plus nécessaires.
Étape 4
Uniformiser les cas d'usage consommés par toutes les applications.
9. Rollback
Chaque application peut temporairement conserver ses anciens appels tant que les nouveaux cas d'usage existent.
10. Critères de succès
- aucun produit ne possède de logique métier propre ;
- DMV Core reste l'unique source de vérité ;
- les cas d'usage sont partagés entre toutes les applications ;
- un nouveau produit peut être développé sans modifier les règles métier.
11. Risques
- recréer de la logique métier côté application ;
- multiplier les API spécifiques ;
- introduire des comportements différents selon le produit.
12. Questions ouvertes
- stratégie SDK commune ;
- versionnement des API ;
- gouvernance des contrats publics ;
- gestion des extensions propres à chaque produit.
Historique
| Date | Auteur | Modification |
|---|---|---|
| 2026-07-22 | Architecture DMV | Création |