All posts
Building something data-heavy

One deployment per customer
does not scale with you

By Woodfrog · 5 min read · Accurate as of

The instinct when data must not leak between customers is to give each one their own everything. It is the easiest thing to explain and the hardest thing to keep running.

What per-tenant deployments cost

Every customer becomes a deployment to upgrade, monitor, back up and debug. A schema change is not one migration, it is as many migrations as you have customers, run in a sequence somebody has to track.

The cost does not show up in the first year, which is why the decision looks fine when it is made. It shows up when a security patch needs applying everywhere in a week.

The middle option

Shared infrastructure, shared pipelines, shared definitions, with tenant boundaries enforced by the platform on every read rather than by having separate copies.

The isolation guarantee then rests on one mechanism that is tested once and applies everywhere, instead of on the fact that two databases happen to be different databases.

What has to be true for this to be safe

The boundary must be enforced below the application, so that no query path can bypass it. It must apply to exports and APIs, not just to the interface. And it must be observable, so you can demonstrate to a customer's security review exactly what stops their data appearing elsewhere.

If any of those three is missing, the shared model is a risk rather than an efficiency.

When separate really is correct

Some customers contractually require their data in their own environment, and some regulators effectively require it. That is a legitimate reason and no amount of architecture argues with it.

The mistake is applying that model to every customer because a few need it. Run the exceptions as exceptions.

On these comparisons. Billing models are stable and publicly documented, and that is what is described here. Specific list prices are not, because they move and because real contracts are commonly well below list at volume, so ask any vendor what they would actually quote you. Reviewed August 2026, next review February 2027.
Next step

See it on your own data.

Thirty minutes on the half you came for. Bring the report that breaks every month, or the decision you never settled.