Aller au contenu principal

Architecture globale

Statut

Document de cadrage architecture — version initiale.

Vue d'ensemble

L'écosystème DMV est organisé autour de plusieurs applications : DMV public, backoffice, PlayLoop, AssoSuite, Mairie et futures applications connectées.

La cible stratégique est une API Laravel centrale modulaire, servant de couche métier commune. Les interfaces restent autonomes, mais mutualisent les services structurants : identité, acteurs, communes, publications, médias, droits, abonnements, statistiques, notifications et future AI Gateway.

État actuel visible

ÉlémentÉtat visible dans le workspace
APIProjet Laravel dans api, avec modules métier actifs et routes /api/v1.
Site publicApplication Next.js dans dmv-public.
BackofficeApplication React/Vite dans dmv_backoffice.
SupabaseClients frontends, migrations SQL et Edge Functions encore visibles.
Déploiement APIDossier deployment avec Nginx, Supervisor, cron et scripts Linux.
JobsScheduler Laravel et workers Supervisor visibles pour queues Redis.
IAAI Gateway documentée comme vision cible, non confirmée comme module livré.

Vision cible

La cible est une architecture en couches :

  • interfaces applicatives autonomes ;
  • API Laravel modulaire comme point d'entrée métier ;
  • services métier partagés ;
  • stockage et services techniques gouvernés ;
  • jobs asynchrones pour traitements longs ;
  • observabilité et sécurité transverses ;
  • AI Gateway centralisée pour tous les usages IA.

Schéma logique

Applications
├─ DMV public (Next.js)
├─ Backoffice (React/Vite)
├─ PlayLoop
├─ AssoSuite
├─ Mairie
└─ Futures apps

Backend cible
└─ API Laravel modulaire
├─ Identity / Territory / Actor
├─ Publication / Community / Monetization
├─ Settings / Analytics / Admin
├─ PlayLoop / AssoSuite / Mairie / Chat
├─ Notifications / Media / Jobs
└─ AI Gateway (vision cible)

Infrastructure
├─ Linux / Nginx / PHP-FPM
├─ Supervisor workers
├─ Cron Laravel scheduler
├─ Redis pour queues cible visible dans Supervisor
└─ Cloudflare / VPS comme option visible dans la documentation de déploiement

Principes d'architecture

  • Commencer simple, mais garder les limites de modules claires.
  • Centraliser les règles métier dans l'API.
  • Éviter les accès directs non gouvernés aux données.
  • Garder les frontends indépendants côté interface.
  • Mutualiser les services transverses.
  • Préserver la réversibilité et la migrabilité.
  • Scaler progressivement par cache, queues, séparation des workloads et optimisation.

Risques et points à clarifier

  • Rôle exact de Supabase à clarifier progressivement.
  • Source de vérité des migrations Laravel vs Supabase à formaliser.
  • Statut réel des environnements production à confirmer.
  • Contrats API inter-applications à documenter.
  • AI Gateway, notifications unifiées et observabilité complète encore à définir comme implémentation.