Mathieu Desnouveaux

Mise en œuvre d'une architecture multi-tenant

Stratégies d'implémentation et patterns techniques avec le stack Symfony/PostgreSQL

Cette sketchnote représente la conférence 'Mise en œuvre d'une architecture multi-tenant avec Symfony, API Platform et PostgreSQL' présentée par Mehdi Zaidi lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'Architecture Multi-Tenant' est affiché en gros caractères. À gauche, des illustrations représentent 'Groupes d'utilisateurs données cloisonnées' avec des utilisateurs et des bases de données. Au centre, des annotations comme 'Type de Multi-Tenant' avec des types 1, 2, et 3 sont illustrées. À droite, des icônes représentent 'DB', 'DB Globale', et 'Vue' avec des flèches pour l'accès aux données et l'ajout de code pour corriger les bugs. En bas, des icônes illustrent 'User Tenant X', 'Kernel Request' avec l'identification du tenant et la connexion à la bonne base, et 'Controller' avec le même code et des données séparées.

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
Thèmes:
🏗️ Architecture
Événement:
🎤 AFUP Day
Publié le 19 mai 2025