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.
Plan een gesprek
