ADR 003 : Choix de Neo4j 5 pour la gestion des données graphe
Statut
info
Accepté
Contexte
L'application nécessite une gestion des relations complexes entre les utilisateurs, pour laquelle une base de données graphe est mieux adaptée que les bases de données relationnelles traditionnelles.
Décision
Nous avons décidé d'utiliser Neo4j 5 comme base de données graphe pour la gestion des relations complexes dans l'application.
- Adaptabilité : Neo4j est spécialisé dans la gestion des graphes, offrant une requête performante et un modèle de données adapté aux relations complexes.
- Support : Neo4j 5 offre un support amélioré pour les environnements cloud et une meilleure performance.
- Compatibilité : S'intègre bien avec Quarkus et les autres composants de l'architecture.
Conséquences
-
✅ Avantages :
- Meilleure modélisation des données relationnelles complexes.
- Requêtes plus performantes pour les relations complexes.
- Soutien d'une base de données mature et largement adoptée.
-
🚫 Inconvénients :
- Introduction d'un nouveau paradigme de données, nécessitant une formation pour l'équipe.
- Besoin de synchroniser ou d'intégrer les données entre Neo4j et les autres bases de données utilisées.
- Les appels Neo4J en mode REST ne sont plus possibles
💡 Alternatives Considérées
- PostgreSQL avec l'extension graphe : Permet de rester sur une base relationnelle, mais avec des performances moindres pour les requêtes complexes.