techdiagrams.net
← All templates

Multi-tenant SaaS data plane

Tenant routing into two isolation tiers — pooled shared-table with row-level security for the many, database-per-tenant silos for the few — with per-tenant quotas keeping neighbors quiet.

Open in editor — free, no login Download JSON
POOLED CELL — DENSE, CHEAP, RLS-ENFORCEDSILO CELL — DATABASE-PER-TENANTrequests + tenant JWTquota checktier: pooledtier: siloWHERE tenant_id = ? (+ RLS)access logTenants A–xxxthousands, pooled tierEnterprise tenantcontractual isolationAPI Edgeauthn · tenant contextPer-tenant Quotasfair-share throttlingTenant Routerdirectory: tenant → cellApp — pooled cellmulti-tenant workersApp — silo celldedicated workersPooled DBshared tables + RLSTenant DBdatabase-per-tenantAccess Auditwho touched whattiering is economics: pooled = margin,silo = the enterprise deal. the routerdirectory lets one product run both

What this design does

Every SaaS eventually runs both isolation models at once: a dense pooled tier where thousands of tenants share tables behind row-level security, and a silo tier where enterprise contracts demand their own database. The interesting component is the tenant router — a directory that decides, per tenant, which world a request lives in. Quotas at the edge keep one tenant's bulk import from becoming everyone's outage.

The patterns it composes

Import it, attach your own numbers, and verify the design against failures — or read the engineering notes.