Перейти к содержимому
HublinkTech
AI & Engineeringby Babak Abedi

Single-Tenant vs Multi-Tenant SaaS: How to Choose

Three tenant isolation models, what each one costs you operationally, and why adding AI to a SaaS product changes the calculation.

Single-Tenant vs Multi-Tenant SaaS: How to Choose

Every SaaS product answers one architectural question before it answers any others: when two customers use the same system, how far apart are their data, their compute and their failure modes? That question is called tenancy, and the answer shapes cost, compliance, release cadence and incident blast radius for the life of the product.

Most teams pick a tenancy model early, when the product has one customer and the decision feels theoretical. It stops being theoretical the first time a regulated buyer asks where their records physically live.

What a tenant actually is

A tenant is one customer organisation and everything that belongs to it: users, records, files, configuration, audit history. Tenancy is the set of rules that keeps one tenant's world separate from the next one's.

Separation happens at several layers, and they are independent of each other:

  • Data. Separate rows, separate schemas, or separate databases.
  • Compute. Shared application processes, or processes dedicated to one tenant.
  • Storage. Shared object buckets with key prefixes, or dedicated buckets.
  • Identity. Shared authentication with a tenant claim, or a dedicated directory.
  • Release. Everyone upgrades together, or each tenant upgrades on its own schedule.

A system can be pooled at one layer and isolated at another. "Multi-tenant" on its own is not a specification.

The three common models

Pooled

All tenants share one database and one application cluster. Every table carries a tenant identifier, and every query is filtered by it.

Pooled is the cheapest model to run and the fastest to ship, because there is one of everything to deploy, patch and monitor. Its weakness is that isolation depends entirely on application correctness. A single query that forgets its tenant filter is a cross-tenant data leak, and no infrastructure boundary exists to stop it. Teams that run pooled systems safely enforce the filter below the application layer — row-level security in the database, or a data access layer that makes an unfiltered query impossible to write.

The other pooled weakness is the noisy neighbour. One tenant running a heavy report competes for the same connections and CPU as everyone else. Mitigations exist — query budgets, per-tenant rate limits, read replicas — but they are ongoing operational work rather than a property of the design.

Bridged

Tenants share infrastructure but get their own schema or their own database on a shared server. Isolation moves from application logic to a database boundary, which is far harder to cross by accident.

The cost is migration mechanics. A schema change has to be applied to every tenant schema, so deployments become a fleet operation instead of a single command, and partial failures become a normal state to design for. Bridged is a reasonable middle position when the tenant count is measured in dozens or low hundreds and the compliance conversation is about data separation rather than dedicated infrastructure.

Dedicated

Each tenant gets its own database and its own application instance, deployed from the same codebase.

Isolation is now physical rather than logical. Cross-tenant leakage requires an infrastructure misconfiguration, not a missing WHERE clause. Each tenant can sit in a chosen region, be backed up and restored independently, and be upgraded on its own schedule. A failed migration affects one customer, not all of them.

The cost is that operations must be automated end to end. Provisioning, migration, backup verification, certificate renewal, log aggregation and version tracking all have to work without anyone touching a server, because the work scales with the number of tenants. Dedicated hosting done manually collapses under its own weight; dedicated hosting done as code is a genuine differentiator for buyers who cannot accept a shared database.

What AI changes

Retrieval-augmented systems introduce a layer that did not exist in traditional SaaS, and it is easy to isolate everything except that layer.

A vector index is customer data. Embeddings are derived from source documents, and a retrieval query that is not scoped by tenant will return chunks from another organisation's contracts or correspondence. Tenant scoping has to be enforced inside the retrieval call, not applied as a filter afterwards, because the model sees whatever is passed into its context.

Prompt context is an exfiltration path. Anything placed in the context window can be reflected back in the answer. Caching, logging and observability tooling that captures prompts will capture customer content unless the retention rules are set deliberately.

Model outputs need per-tenant evaluation. A retrieval system that performs well on one tenant's document set can perform badly on another's, because the vocabulary, languages and document structure differ. Accuracy is a property of a corpus, not of a model, so evaluation belongs next to each tenant's data.

For AI features, the practical position is that retrieval and storage should be at least as isolated as the primary database. A pooled vector index behind a dedicated database gives you the illusion of isolation and the risk profile of a shared one.

Choosing

The decision follows the buyer, not the engineering preference.

Pooled fits self-service products with many small tenants, where sign-up must be instant and the per-tenant revenue cannot support dedicated infrastructure. Bridged fits mid-market products with moderate tenant counts and real data separation requirements. Dedicated fits enterprise and regulated buyers — finance, healthcare, government supply chains — where procurement asks where the data lives, who can reach it, and how it is restored.

Two questions settle most cases. First: can a single application bug expose another customer's data, and is that acceptable to the people signing the contract? Second: does one tenant need to defer an upgrade, and does the architecture allow it?

Migrating between models later is possible but expensive, because tenancy is woven through data access, authentication, background jobs, reporting and backups. It is cheaper to build the automation for dedicated deployment early than to retrofit isolation into a pooled system after an enterprise deal depends on it.

How we build it

Clavix360 runs on dedicated single-tenant hosting. Each organisation gets its own database and its own instance, provisioned from the same codebase and upgraded independently, so a migration or an incident is contained to one customer. The five industry engines sit on top of that shared codebase as configuration rather than as forks, which keeps one engineering surface to maintain while the data boundaries stay physical.

Hublinkly, our B2B trade network, is in beta and takes a different position by design. A trade network derives value from members discovering each other, so the shared graph is the product. There, isolation applies to private data — RFQs, documents, negotiation history — while the discovery layer is deliberately common. Ara, our trade intelligence agent, is in development, and the retrieval design for it starts from the assumption that regulatory sources are shared and everything a user brings is not.

Tenancy is not one decision applied uniformly across a portfolio. It is a decision made per product, against the buyer that product serves.

Теги#saas#multi-tenancy#software architecture#data isolation#ai#paas
Поделиться

Хотите больше от команды?

Скоро будут новые тексты. А пока посмотрите, что мы создаём, на /services или познакомьтесь с командой на /about.

Single-Tenant vs Multi-Tenant SaaS: How to Choose — HublinkTech