Conçu pour la montée en charge
EDDI fonctionne sur Java 25 avec Quarkus, exploitant les threads virtuels (Project Loom) pour une concurrence massive liée aux E/S. Contrairement aux boucles d'événements de Node.js, les threads virtuels offrent un véritable parallélisme multi-thread avec un overhead minimal.
Pourquoi les threads virtuels comptent pour les agents IA
Les agents IA modernes sont fondamentalement limités par les I/O : ils passent la plupart de leur temps à attendre les réponses des API LLM, les requêtes vectorielles et les opérations de base de données.
Les threads virtuels Java résolvent ce problème avec élégance : lorsqu'un agent attend une réponse LLM, son thread virtuel cède de manière transparente, libérant le thread porteur pour traiter d'autres opérations.
Points forts en performance
- Threads virtuels, Des millions de threads légers pour les appels LLM concurrents
- Runtime Quarkus, Java cloud-native avec rechargement à chaud en mode dev, optimisé pour les conteneurs. Quarkus offre un débit nettement supérieur et un démarrage plus rapide que les stacks JVM traditionnelles, avec une empreinte mémoire réduite
- Pools de connexion compatibles Loom, Le pool de connexions Agroal évite les goulots d'étranglement ThreadLocal qui peuvent affecter les pools traditionnels sous charge de threads virtuels
- NATS JetStream, Scalabilité horizontale avec une architecture événementielle
- Double base de données, MongoDB ou PostgreSQL, changement avec une variable d'environnement. Une image Docker pour les deux
- Streaming SSE, Réponses de chat en temps réel, flux de discussions de groupe et streaming de logs en direct via Server-Sent Events
- Installation en une commande, Assistant interactif qui déploie EDDI + base de données + agent de démarrage via Docker Compose
- Certifié Red Hat, Certification de conteneurs avec vérifications preflight automatisées en CI/CD
Performance en contexte
Aucun runtime ne l'emporte dans tous les scénarios. Node.js peut surpasser Java dans des scénarios de routage très spécifiques et purement E/S, tandis que Java domine régulièrement les charges de travail impliquant des tâches intensives en CPU, exactement ce dont les agents IA ont besoin. Les agents modernes combinent des E/S massives (appels d'API LLM, requêtes vectorielles) et des calculs intensifs (transformation de données, logique de routage, traitement des embeddings, évaluation de confiance). C'est sur ce profil de charge mixte que les threads virtuels sur Quarkus offrent leur plus grand avantage.
L'architecture d'EDDI est intentionnellement optimisée pour cette réalité : Quarkus avec threads virtuels pour la couche d'orchestration d'agents intensive en E/S, combiné à des pools de connexions compatibles Loom (Agroal) qui évitent les problèmes de contention ThreadLocal observés avec les bibliothèques de pooling traditionnelles sous forte concurrence de threads virtuels.