01 · The boundary
You can dedicate the database, the cache, the API and the BFF. You cannot dedicate the identity plane, the vendor quotas or the pipeline, so name that boundary before an auditor finds it
AWS calls the ends of this range silo and pool, and the deliberate mix in between a bridge.1 The part worth holding onto once the decision is already made: AWS still counts a siloed deployment as SaaS only while identity, onboarding, metering and operations stay shared and automated.2 When those fragment too, it stops being a product and becomes a managed-services portfolio.
So the useful artefact is not a tenancy diagram. It is a schedule naming every component as dedicated or shared, agreed before the first cell exists.
Where "completely separate" stops, and why it stops there
| Component | Per cell | What it buys, or why it will not split |
| Database |
Dedicated |
Its own database on the shared replica set, or its own replica set where the clause says separate server. Roughly 130 dedicated databases fit one set before the namespace guidance bites, so the real ceiling is cache pressure rather than count |
| Cache |
Dedicated |
Its own instance and credentials. Cheap, and it closes a whole category of cross-tenant question |
| API and workers |
Dedicated |
Its own app carrying both process groups. The platform's own guidance recommends one app per customer, for per-app secrets, regions and network segmentation1112 |
| BFF |
Dedicated |
Its own project. Unlimited projects, 150 per Git repository, up to 500 concurrent deployments, 1,000 variables per environment10 |
| Files and domain |
Dedicated |
Its own bucket and custom domain, which is also the cleanest answer to a residency clause |
| Identity |
Shared |
One tenant with organisations. Splitting later changes every user identifier and every enterprise callback URL, and preserving password hashes can need vendor assistance2324 |
| Model routing, email, upstream data |
Shared |
Sending reputation and API quotas belong to your account rather than to a tenant. Splitting them means separate vendor contracts, not separate configuration |
| Control plane and pipeline |
Shared |
Shared by definition, and the line that keeps this one product instead of several2 |
The shared rows are highlighted because they are the ones nobody raises until late. Sources: 123
A cell also still runs in your cloud accounts, under your IAM, patched by your team. Worth saying early, because it is what a sophisticated reviewer asks after the architecture diagram has been agreed. The only rung that changes it is deploying into the customer's own account, and that is a different product at a different price.3
Note: a separate frontend project is a deployment and administrative boundary, not a data-isolation one. The code executes on shared infrastructure either way, and the vendor's own guidance still recommends a single deployment when every tenant runs identical code.4 That does not make splitting it wrong; it makes it a contractual choice rather than a technical one, and the schedule should say which of the two it is. Only a private-network product moves the network boundary, and that sits behind an enterprise contract.5
The tenant that is itself multi-tenant
One shape breaks the table above, and it turns up in any market with agencies in it: a customer who is not an end company but a firm serving several of them. Their cell is single-tenant to you and multi-tenant to them, so the row-level discriminator stays load-bearing inside the silo, and the cell boundary is the firm rather than the company.
That changes the tenant registry, the organisation model in the identity provider, how usage is attributed for billing, and whether one of the firm's clients can be lifted out later without a migration. None of this research covers it. The brief never asked about agency-shaped tenancy and every backend answered for one company per cell. If the first dedicated customer is a firm rather than an issuer, settle this before the registry is written, because it is a schema decision rather than a configuration one.