Haute disponibilité et limites
La haute disponibilité est déclarée par service d'après le code réel de la version installée (ADR-0166). Pour la mémoire IA, la réponse est simple : aucun des deux moteurs n'a de mode répliqué.
Mem0 : instance unique
Le descripteur déclare cluster, ha, failover, replication et quorum à none, un seul mode single et un
seul domaine de panne. Raisons lues dans le code de la v2.2.1 :
- l'historique des mémoires et les messages récents servant de contexte d'extraction sont dans un fichier SQLite
local (
HISTORY_DB_PATH) ; - les limites de débit des routes d'authentification sont comptées en mémoire, par processus ;
- les migrations s'appliquent à chaque démarrage.
Deux serveurs derrière un répartiteur garderaient chacun un historique partiel. La perte du serveur arrête l'API de mémoire jusqu'à son redémarrage ou sa restauration ; les mémoires, vecteurs, utilisateurs et clés restent dans PostgreSQL. Avec le service PostgreSQL hautement disponible, un hôte perdu se remplace par une réinstallation et la restauration du fichier d'historique.
Cognee : profil standard en instance unique
Le profil standard associe PostgreSQL (métadonnées relationnelles et pgvector) et LadybugDB 0.19.0 embarqué sur un volume persistant. LadybugDB est un moteur embarqué dont les fichiers sont verrouillés par un seul processus ; le point d'entrée officiel lance un seul processus gunicorn. Deux API garderaient chacune un graphe différent. Aucun mode distribué ni répliqué n'est proposé. Un hôte perdu se remplace par une réinstallation et la restauration de la dernière sauvegarde (base, fichiers LadybugDB et racine des données pris ensemble).
Backends de graphe non proposés
- Le backend de graphe PostgreSQL de Cognee 1.6.6 (
postgres_demo) est une démonstration que le code source déclare non prête pour la production : il n'est jamais présenté comme prêt pour la production bancaire. - Neo4j, Neo4j Aura et Neptune sont exclus (licence ou service cloud). Turso n'est pas un moteur validé de la plateforme.
- Le profil avancé de l'ADR-0174 (graphe externe sous licence autorisée, isolation des tenants validée par un test) n'a aujourd'hui aucun backend qui remplisse ces conditions.
Aucune capacité annoncée
Aucun débit, aucune latence, aucun volume de mémoires ni aucune taille de graphe n'est garanti : aucun test de charge
n'a été fait. Les seuils des contrôles préalables (mémoire, CPU, disque) sont des minimums d'installation, pas une
capacité. Les réglages qui bornent la charge sont limit_concurrency (Mem0, 64 requêtes simultanées par défaut,
au-delà 503), max_concurrent_pipelines (Cognee, 2 traitements simultanés par défaut) et request_timeout_s
(Cognee, 3600 secondes).
Ce qui a été vérifié réellement
Les tests navin-manager/server/tests/test_mem0_real.py et test_cognee_real.py rendent la méthode python du
descripteur avec le contexte du Manager et la font tourner pour de vrai contre un PostgreSQL 16.14 réel avec pgvector
0.8.5, provisionné par la commande du descripteur postgresql.
| Point | Mem0 | Cognee |
|---|---|---|
| Sources ou paquet | les 24 fichiers du serveur identiques à l'archive v2.2.1 | cognee 1.6.6, LadybugDB 0.19.0 réel |
| Base et rôle | rôle mem0 sans privilège, migrations à la révision 006 | rôle cognee propriétaire de la seule base |
| Authentification | 401 sans clé, inscription fermée, clés utilisateur créées puis révoquées | 401 sans clé, compte amont absent, clé stockée en empreinte |
| Cycle | ajout avec extraction, recherche, mise à jour, historique, redémarrage, suppression | ajout, cognify, relations extraites, recherches CHUNKS, GRAPH_COMPLETION, RAG_COMPLETION, SUMMARIES, redémarrage, suppression d'un élément |
| Isolation | - | deux utilisateurs séparés, ouverture par permission de lecture |
| Sauvegarde | sauvegarde, vérification, restauration, migration de mise à jour | sauvegarde, vérification, perte, restauration |
| Test fonctionnel du descripteur | toutes les étapes réussies, clé masquée | toutes les étapes réussies, clé masquée |
| Sorties réseau | aucune | aucune |
Limite importante : aucun vrai serveur de modèles n'a servi. La passerelle est un serveur déterministe compatible
OpenAI du test, joint comme LiteLLM à <url>/v1. Mem0 a été testé avec les noms par défaut local-llama et
bge-m3-vllm (vecteurs de 1024) ; Cognee avec les noms de test navin-chat et navin-embed. La qualité d'extraction
et de réponse avec un vrai modèle n'est donc pas mesurée. Seule la méthode python est exécutée par ces tests ; la
méthode podman de Cognee, son interface et son serveur MCP ne le sont pas.