Mise en œuvre d'une architecture multi-tenant
Stratégies d'implémentation et patterns techniques avec le stack Symfony/PostgreSQL

Cette sketchnote a été réalisée lors de l'AFUP Day Lille 2025. Elle illustre la présentation "Mise en œuvre d'une architecture multi-tenant" donnée par Mehdi Zaidi, qui détaille les stratégies techniques pour implémenter une architecture multi-tenant avec Symfony, API Platform et PostgreSQL.
Contenu de la présentation
Mehdi Zaidi présente trois types d'architectures multi-tenant : Type 1 (une app, une DB partagée), Type 2 (une app, DBs séparées par tenant), et Type 3 (apps et DBs complètement isolées). Chaque approche offre un niveau de séparation différent selon les besoins.
L'implémentation avec Symfony suit un workflow précis : identification du tenant via Kernel Request, connexion automatique à la bonne base de données, puis exécution du même code contrôleur avec des données séparées. Cette approche permet une transparence totale pour les développeurs.
La présentation couvre aussi les défis pratiques : gestion des bugs cross-tenant, debugging avec vues globales, et intégration API Platform pour exposer les endpoints multi-tenant.
Points clés à retenir
- Typologie claire : Type 1 (app unique, DB unique), Type 2 (app unique, DBs séparées), Type 3 (apps et DBs séparées)
- Workflow Symfony : Identification tenant → Kernel Request → connexion DB automatique → contrôleur transparent
- Séparation des données : Cloisonnement logique ou physique selon le type choisi avec PostgreSQL
- Gestion des bugs : Stratégies spécifiques pour debugging cross-tenant et vues globales
- Stack technique : Intégration native Symfony + API Platform + PostgreSQL pour multi-tenancy scalable