Multi-tenancy is the defining architectural challenge of SaaS. How you isolate tenant data shapes your security posture, your operational costs, your compliance story, and your ability to scale. Get it wrong in year one and you will spend years fixing it — often in ways that require migrating millions of customer records.
The Silo Model
In the silo model, each tenant gets a completely isolated stack: dedicated database, dedicated compute, often a dedicated deployment. This gives you the strongest possible isolation guarantees — a bug in one tenant's environment cannot affect another's. It simplifies compliance (each tenant's data never touches shared infrastructure) and makes it easy to offer custom configurations per tenant. The cost: you pay full infrastructure overhead per customer, making this model economically viable only for enterprise contracts where the per-seat price justifies dedicated resources.
The Pool Model
In the pool model, all tenants share the same infrastructure — one database with a tenant_id column, one compute cluster, one deployment. This is the most cost-efficient model and the easiest to operate at the start. The challenge is ensuring absolute data isolation through application-level controls (row-level security policies, query-level tenant context injection) and preventing noisy-neighbour effects where one tenant's heavy workload degrades performance for others. Most B2C and SMB SaaS products start here.
The silo model is for enterprise. The pool model is for volume. The bridge model is for the awkward middle — and most SaaS companies live there longer than they expect.
The Bridge Model
The bridge model applies different isolation levels to different tiers of customers. Free and starter tier customers share pooled infrastructure; enterprise customers get siloed resources. This gives you economic viability at the low end and compliance at the high end. The complexity: you are now operating two different data models simultaneously, and your application code must handle both. Build the bridge model intentionally — do not let it emerge accidentally from one-off enterprise deals, or you will end up with an unmaintainable patchwork of exceptions.