Projet : Avenirs-ESR / ePortfolio.
Objet : Architecture logicielle du module Stockage.

Révision : 1.0.0
Date : 25/04/2024
Auteur : A. Deman
Commentaire : Version initiale

Contexte

Partie Stockage du portfolio industriel, qui permet de gérer le stockage de données structurées, semi ou non structurées. Il continent également la gestion du cache côté backend et l’indexation. [TODO] Déterminer si l’indexation est effectivement nécessaire.

Objectifs

Ce module doit permettre la persistance des données suivant différentes modalités en fonction de leur type. A ce stade plusieurs types de stockages sont envisagés : [TODO] à vérifier / corriger / compléter

  • SGBDR : pour les données structurées, par exemple le paramétrage, les préférences utilisateur. Un cluster PostgreSQL à été mis en oeuvre pour tests dans l’environnement de développement.
  • NoSQL : pour les données non structurées, par exemple les metadata ou des données d’indexation.
  • S3 : pour les traces et la gestion des versions.

Contraintes

  • Contrainte de performances et de fiabilité : pas de ralentissement et pas de perte de données.
  • Gestion du cycle de vie des données.
  • Certaines données doivent être versionnées, par exemple les traces.
  • La question de la restauration des données utilisateurs reste ouverte : quelles données peuvent être restaurées pour un utilisateur à une date donnée ? [TODO] Arbitrages nécessaires
  • Les données sensibles ne doivent pas être mises en cache. Il peut s’agir, par exemple, du résultat de la validation du token d’authentification par le provider OIDC.

Principaux composants

Storage - Main components
Storage module - Main components

Architecture envisagée pour le stockage de données structurées

Storage - Structured data
Storage module - Structured data