Multi-tenant architectuur, per rij geschaald, per query geaudit.
Eén database, veel tenants, nul cross-tenant lekken. We bouwen SaaS-backends waar elke read en write zijn tenant-scope door het typesysteem, het queryplan en de audit log draagt. Het soort architectuur dat een security-questionnaire passeert zonder voetnoten.
Wat we bouwen
Row-level scoping op de database
Tenant ID gestempeld op elke rij, afgedwongen op databaseniveau via row-level security policies. Applicatiecode vraagt om data; de database weigert rijen terug te geven die niet bij de aanvragende tenant horen. Geen client-side filter om te vergeten.
Tenant context door het typesysteem
De klantcontext loopt mee in elke vraag aan de database. Ongetypte queries worden een build-fout in de datalaag, geen runtime data-lek. De architectonische regel wordt door de toolchain afgedwongen, niet alleen door code review.
Per-tenant subdomeinen en custom domeinen
Tenant-resolutie aan de edge: subdomein-routing voor de default, custom domeinen met geautomatiseerde cert-provisioning voor enterprise-tiers. Middleware injecteert de tenant voordat de request een handler raakt.
Audit trails per tenant
Elke state-veranderende call schrijft een append-only audit-rij met tenant, actor, action, en before/after state. De audit-tabel is zelf tenant-scoped; tenants zien alleen hun eigen historie.
Background jobs die tenancy respecteren
Background workers ontvangen tenant-context als onderdeel van de job-payload. Een long-running export voor tenant A kan tenant B's data niet lezen omdat de worker dezelfde scoped querypath gebruikt als de request handler.
Migratiepatronen die per tenant schalen
Schemaveranderingen zijn standaard tenant-agnostisch. Als een feature per-tenant data oplevert, genereert de migration tooling per-tenant backfills met rollback plans ingebakken.
Waar dit past
Je SaaS begon single-tenant en je moet enterprise-klanten onboarden die data-isolatie schriftelijk willen vastleggen.
Je verliest deals op de security-questionnaire omdat je tenant-model geen pen-test of SOC 2-review doorstaat.
Je hebt een multi-tenant database maar geen architectonische handhaving: een vergeten WHERE-clause kan data lekken en je zou het niet weten.
Tech stack
- TypeScript
- Postgres
- Drizzle
- TanStack Start
Wil je dit voor je team?
30 minuten om vast te stellen wat je nodig hebt. Geen pitchdeck, geen verplichtingen. We zeggen je eerlijk of Stacklane past.

