Aller au contenu principal

EPIC-001 — Restructuration de DMV Core

IDEPIC-001
StatutValidé
PrioritéCritique (P0)
ResponsableArchitecture
ExécutionCodex

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

ItemMissionObjectifValidation
ENG-001.1Audit de DMV CoreCartographier précisément l'existantCartographie, dépendances, violations et plan de migration produits ; aucun code modifié
ENG-001.2Contrats inter-contextesIntroduire les premiers contrats publics sans changement fonctionnelInterfaces et bindings en place ; aucun endpoint ne change
ENG-001.3Découplage Actor → Monetization (PR-002)Actor ne possède plus l'ownership de actor_subscriptionsActor n'écrit plus dans actor_subscriptions ; Monetization propriétaire exclusif via SubscriptionManager::ensureFreeSubscription() ; comportement inchangé
ENG-001.4Territory Bounded ContextLimiter Territory aux données territorialesTerritory ne contient plus de logique métier municipale
ENG-001.5Municipal ManagementExtraire totalement la gestion municipaleToutes les fonctionnalités municipales sont isolées
ENG-001.6PublicationRendre Publication entièrement événementiellePublication ne possède que son propre modèle
ENG-001.7ModerationCréer un contexte autonomeAucune dépendance métier cachée
ENG-001.8SearchTransformer Search en Platform ServiceSearch ne contient aucune logique métier
ENG-001.9Platform ServicesExtraire les services transversesAucun contexte métier ne possède ces responsabilités
ENG-001.10Event BusGénéraliser les Business EventsLes écritures croisées sont supprimées
ENG-001.11Validation finaleVérifier la conformité globaleTous 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.4 et 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.

Références