EPIC-001 — Restructuration de DMV Core
| ID | EPIC-001 |
| Statut | Validé |
| Priorité | Critique (P0) |
| Responsable | Architecture |
| Exécution | Codex |
Objectif
Cette Epic pilote la restructuration complète de DMV Core afin de l'aligner avec l'architecture cible validée.
L'objectif n'est pas de réécrire le projet.
L'objectif est de transformer progressivement l'implémentation actuelle en une architecture modulaire, durable et conforme aux principes définis dans la documentation.
La migration doit être :
- incrémentale ;
- compatible avec la production ;
- entièrement testable ;
- réversible.
Aucune interruption de service ne doit être nécessaire.
Vision
À l'issue de cette Epic :
- DMV Core devient le cœur métier unique de la plateforme.
- Les Bounded Contexts sont clairement séparés.
- Les responsabilités sont explicites.
- Les dépendances circulaires sont supprimées.
- Les événements métier remplacent les écritures inter-contextes.
- Les applications deviennent de simples clientes de DMV Core.
Hors périmètre
Cette Epic ne comprend pas :
- les évolutions fonctionnelles ;
- les nouvelles fonctionnalités ;
- l'application mobile ;
- Capacitor ;
- les optimisations UX.
L'objectif est uniquement la restructuration du cœur métier.
Principes
Toutes les missions de cette Epic doivent respecter les principes suivants.
DMV Core est la source de vérité
Aucune logique métier ne doit vivre dans :
- Public ;
- Workspace ;
- Backoffice ;
- Mobile.
Ownership
Chaque donnée possède un unique propriétaire.
Un autre contexte ne peut jamais modifier directement cette donnée.
Contrats publics
Un contexte expose uniquement :
- des Commands ;
- des Queries ;
- des Events.
Aucune dépendance interne ne doit être utilisée par un autre contexte.
Migrations incrémentales
Chaque mission :
- est indépendante ;
- peut être testée ;
- peut être revertée.
Production First
La branche principale doit rester publiable pendant toute la migration.
Définition de terminé
L'Epic est considérée comme terminée lorsque :
- tous les Bounded Contexts sont indépendants ;
- toutes les écritures inter-contextes ont disparu ;
- les Platform Services sont extraits ;
- les événements métier sont utilisés ;
- les applications utilisent uniquement les contrats publics ;
- tous les tests sont verts.
Backlog
| Item | Mission | Objectif | Validation |
|---|---|---|---|
| ENG-001.1 | Audit de DMV Core | Cartographier précisément l'existant | Cartographie, dépendances, violations et plan de migration produits ; aucun code modifié |
| ENG-001.2 | Contrats inter-contextes | Introduire les premiers contrats publics sans changement fonctionnel | Interfaces et bindings en place ; aucun endpoint ne change |
| ENG-001.3 | Découplage Actor → Monetization (PR-002) | Actor ne possède plus l'ownership de actor_subscriptions | Actor n'écrit plus dans actor_subscriptions ; Monetization propriétaire exclusif via SubscriptionManager::ensureFreeSubscription() ; comportement inchangé |
| ENG-001.4 | Territory Bounded Context | Limiter Territory aux données territoriales | Territory ne contient plus de logique métier municipale |
| ENG-001.5 | Municipal Management | Extraire totalement la gestion municipale | Toutes les fonctionnalités municipales sont isolées |
| ENG-001.6 | Publication | Rendre Publication entièrement événementielle | Publication ne possède que son propre modèle |
| ENG-001.7 | Moderation | Créer un contexte autonome | Aucune dépendance métier cachée |
| ENG-001.8 | Search | Transformer Search en Platform Service | Search ne contient aucune logique métier |
| ENG-001.9 | Platform Services | Extraire les services transverses | Aucun contexte métier ne possède ces responsabilités |
| ENG-001.10 | Event Bus | Généraliser les Business Events | Les écritures croisées sont supprimées |
| ENG-001.11 | Validation finale | Vérifier la conformité globale | Tous les critères de fin de l'Epic sont validés |
Numérotation réalignée le 2026-08-01 :
ENG-001.3(Actor → Monetization) est définitivement acté, l'architecte a tranché la collision préexistante avec « Territory Bounded Context » en déplaçant ce dernier àENG-001.4et en décalant d'un rang toutes les missions suivantes du backlog. Détail dans ENG-001-3-implementation-report.md §9.
Services transverses concernés
Les services transverses à extraire ou clarifier dans le cadre de cette Epic incluent :
- Authorization ;
- Notification ;
- Search ;
- Storage ;
- Geocoding ;
- Files.