Technical Article
Single Tenant vs Multi Tenancy: What Each Costs to Run
Single tenant isolates by infrastructure and charges for it in every upgrade; multi-tenant shares one release and moves isolation into code. How to choose.
Single tenant vs multi tenancy is usually framed as a security question, and it is mostly an operations question. In a single-tenant setup each customer gets their own installation and database. In a multi-tenant one, every customer shares one installation and one database, and the application keeps them apart. I have worked on both sides: a self-hosted Perfex CRM installation, which is single tenant by design, and the multi-tenant platforms that replaced it or grew next to it, including Omnitech CRM and the platform that runs this website. This article compares the two on what they cost to run, where each one fails, and how to choose. The decisions that follow once you choose multi-tenant are in SaaS platform architecture: the decisions that come first.
The two models in one paragraph each
Single tenant: each customer runs their own copy of the application with its own database, often on its own server. Nothing is shared, so one customer can’t see another’s data even if the application has a bug. Most self-hosted business software works this way: Perfex CRM is installed once per company, and that company owns the whole installation.
Multi-tenant: one deployment serves every customer. Each customer is a tenant, and every tenant-owned row carries the tenant’s id. Omnitech CRM and this website’s platform both work this way: one codebase, one database, one release, with the application making sure each request only ever reaches its own tenant’s rows.
Single tenant vs multi-tenant, side by side
| Single tenant | Multi-tenant | |
|---|---|---|
| Isolation | By infrastructure; a bug can’t cross customers | By application code; a missing filter can |
| Upgrades | One per customer, often on different versions | One release for everyone |
| Cost per customer | A server, a database and backups each | A share of one deployment |
| Onboarding a customer | Provision an environment | Create a tenant record |
| Per-customer customisation | Easy, and the reason upgrades get hard | Through settings and modules, never forks |
| Noisy neighbours | None | One heavy tenant can slow the others |
| Reporting across customers | A query per installation | One query |
| Data residency or a dedicated-database contract | Natural fit | Needs a hybrid |
What single tenant cost in practice
Omnitech ran its CRM on Perfex, a single-tenant installation. The isolation was never the problem; the costs were the ones that come with owning an installation:
- Business rules lived in custom modules inside the installation (pricing and sales discount rules among them), so each one had to be carried through every upgrade of the base product.
- The permission model was whatever the base product shipped: visibility was baked into permission names (
view,view_own,minimal_access), and changing that meant changing someone else’s code. - A second company or workspace means a second installation to host, back up and upgrade, which is the model’s cost in general, not a Perfex quirk.
Omnitech CRM is its replacement: a multi-tenant system designed from the start, with its own permission model (how access control works there) and an idempotent import that moved the data across (the reconciliation).
What multi-tenant cost in practice
Multi-tenant moved the cost from operations into code. On this website’s platform, which serves mmuzammilq.com and GrowBizNest from one database, that cost is concrete:
- Every tenant-owned table has a tenant column, and 45 models carry one trait that filters reads, stamps writes and throws when no tenant is bound.
- Queued jobs carry the tenant in their payload and restore it before they run.
- The page cache is keyed by host and invalidated per tenant, so one site’s publish never clears the other’s cache.
- A test suite checks each of those rules, because a weakened rule doesn’t fail loudly on its own.
In return, a fix ships to both sites in one deploy, and a new site is a seeder rather than a server. The isolation rule that makes it safe, failing closed rather than open, is compared across four platforms in multi-tenant isolation.
The hybrid: shared by default, dedicated on request
The choice is not binary. A common end state is a multi-tenant application where most tenants share a database and a few, for contractual, regulatory or load reasons, get a dedicated database or deployment running the same code. AWS’s SaaS architecture guidance describes these as different deployment models within one SaaS product.
I have not run a hybrid in production, so I won’t claim its costs from experience. What I would insist on is the same thing that makes the shared model safe: the application resolves the tenant first and never falls back, so a tenant that moves to its own database is a change in where its connection points, not a change in how the code finds its data.
How to choose
| If this is true | Lean towards |
|---|---|
| Customers run the same product and the same release | Multi-tenant |
| You have more customers than people to run installations | Multi-tenant |
| You need reporting or features across customers | Multi-tenant |
| A customer contract requires their own database, region or server | Single tenant for that customer, or a hybrid |
| Each customer needs deep changes to the product itself | Single tenant, and plan for the upgrade cost |
| You have a handful of very large customers with very different load | Single tenant or a hybrid |
If you are deciding for an existing product, the Platform Change-Readiness Scorecard scores tenant isolation and fourteen other factors in about ten minutes. For a review of the decision with your own constraints, see SaaS architecture.
References
Evidence and further reading
All insights →Facing a similar problem?
Platform & Integration Review
For SaaS founders and engineering leads whose platform is getting slower and riskier to change.
Request an assessmentLet's build what's next
Have a complex system that needs to be built right?
Whether you are starting from an idea, replacing an existing platform, or scaling a system, let's talk.
Better Technology.
Brighter Possibilities.

