Skip to content
Architecture 2026-07-01 10 min

Multi-tenancy

Isolation strategies, migrations and per-tenant config.

By Mohammad Zayed

Overview

Choose tenant isolation based on compliance needs: shared schema (cheap), separate schemas (balanced), or separate databases (strongest).

Strategies

  • Shared schema — one table, tenant_id + RLS.
  • Separate schemas — per-tenant schema, shared app.
  • Separate databases — maximum isolation, more ops.

Config

resolve tenant
const tenant = await resolveTenant(req.hostname);
db.setTenant(tenant.id); // sets app.tenant_id for RLS

Frequently asked questions

Is this the only way to build it?
No. These are reference patterns we reuse. Adapt the boundaries to your constraints, team and compliance needs.
Should I copy this exactly?
Use it as a starting point. Validate each decision against your traffic, data sensitivity and team size.
Can NorthFlow implement this?
Yes. Book a strategy call and we'll tailor the architecture to your product.

Continue reading

Want this architecture for your product?

Book a free strategy call. We'll map your bottlenecks to the right systems and send a clear roadmap — even if we don't work together.

Chat on Telegram

Usually replies within minutes. Chat on Telegram: @northflowstudio

No obligation consultationFounder-led projectsInternational clientsFast responseSecure communication