Module 7 — Projet Final : Backend IA Optimisé
L'apogée de votre parcours Backend IA : concevez et déployez pas-à-pas une application d'analyse intelligente optimisée pour la haute charge. Connectez harmonieusement un backend Express non bloquant, des Worker Threads, l'API Google Gemini, une base MySQL, un cache Redis distribué et un frontend réactif en streaming.
Analyse des besoins et conception de l’architecture
Compréhension du besoin métier, identification des fonctionnalités cibles, délimitation des responsabilités Frontend / Backend et cartographie des flux de données.
Initialisation et organisation du projet Node.js / Express
Initialisation du projet Node.js avec TypeScript, configuration d’Express, structure modulaire en couches, gestion des variables d’environnement et scripts npm.
Conception et intégration de la base de données MySQL
Modélisation des tables users et analyses, pilote mysql2/promise, pool de connexions haute performance et requêtes préparées anti-injections.
Intégration de Google Gemini dans le Backend
Configuration du SDK officiel @google/genai, sécurisation de la clé secrète, service d’inférence generateContent(), contrôleur et gestion rigoureuse des erreurs d’API.
Streaming des réponses IA avec Server-Sent Events (SSE)
Mise en œuvre du protocole SSE, méthode generateContentStream() de Gemini, flux for await...of, en-têtes text/event-stream et détection des déconnexions.
Traitements parallèles avec Worker Threads
Délestage des calculs CPU intensifs hors du thread principal Node.js : module node:worker_threads, communication parentPort/workerData et mesure des gains de latence.
Optimisation des performances avec Redis
Mise en place de Redis sur Docker, stratégie de Cache-Aside avec empreinte SHA-256, expiration TTL et protection des quotas par Rate Limiting avec express-rate-limit.
Développement de l’interface utilisateur avec React
Création du frontend React avec Vite et TypeScript, consommation du flux de streaming SSE via l’API Fetch ReadableStream et affichage mot à mot sans blocage.
Tests, débogage et optimisation globale de l’application
Tests unitaires et d’intégration avec Vitest et Supertest, audit des goulots d’étranglement, checklist de sécurité, simulation de charge avec k6 et préparation au déploiement.