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.