Aller au contenu principal

Cache

Statut

Document de cadrage architecture — version initiale.

Objectif

Le cache doit améliorer la performance sans compromettre la cohérence des données locales.

DMV manipule des contenus qui peuvent être publics, territoriaux, administrés ou sensibles. Le cache doit donc être explicite et invalidable.

Niveaux de cache

NiveauUsage
HTTP / CDNPages publiques, assets, réponses publiques stables.
Application LaravelListes, paramètres, agrégats, droits calculés si contrôlé.
FrontendSWR ou cache client pour lectures non sensibles.
Base de donnéesIndex, vues ou requêtes optimisées.
IARésultats non sensibles et réutilisables, avec prudence.

État actuel visible

  • Laravel inclut une migration de table cache.
  • Next.js peut produire des pages statiques ou optimisées.
  • Nginx active gzip.
  • Les frontends utilisent des bibliothèques pouvant gérer du cache client, notamment SWR dans dmv-public.

La stratégie de cache complète reste à formaliser.

Données candidates au cache

  • communes ;
  • paramètres publics ;
  • catégories et tags ;
  • acteurs publics validés ;
  • pages publiques peu changeantes ;
  • listes de services communaux ;
  • catalogues de plans ou boosts ;
  • agrégats statistiques non temps réel.

Données à éviter ou contrôler fortement

  • profils privés ;
  • droits utilisateurs ;
  • contenus non publiés ;
  • données de paiement ;
  • résultats de modération ;
  • prompts ou contextes IA sensibles ;
  • contenus soumis à expiration rapide, comme alertes urgentes.

Invalidation

Chaque cache doit avoir une règle d'invalidation :

  • expiration courte ;
  • purge sur modification ;
  • version de clé ;
  • purge par commune ou acteur ;
  • purge manuelle admin si nécessaire.

Risques et points à clarifier

  • Stratégie CDN à confirmer.
  • Règles de cache pour alertes mairie à définir.
  • Cache des réponses API authentifiées à encadrer.
  • Cache IA à limiter aux contenus non sensibles.
  • Politique d'invalidation par module à documenter.