Django Multi-tenant Applications
What is a Multi-tenant app
A single application that serves multiple customers, each customer’s data is completely seperate and is called a tenant.
Common Approaches to Multi-tenancy
Shared Database with shared schema
A single schema in a single db, the
ForeignKey identifies the tenant.
- Weak seperation of tenant data
- Tenant isolation code is intermixed with app code
Shared Databse with isolated schema
A single databse keeps the tenant’s data. Each tenants data is in a seperate schema within a single db.
Isolated databse with shared App Server
Database identifies the tenant
Completely isolated tenants using Docker
A new set of docker containers are launched for each tenant. A set of containers identifies the tenant.