Report #40064
[architecture] Database connection pool exhausted with schema-per-tenant isolation strategy under load
Use Row-Level Security \(RLS\) with tenant\_id discriminator for high-density multi-tenancy to allow full connection pool reuse; avoid schema-per-tenant for >100 tenants without connection multiplexing
Journey Context:
Database-per-tenant offers best isolation but exhausts connection pools \(1000 tenants = 1000 pools\). Schema-per-tenant requires SET search\_path per request, preventing connection reuse across tenants without careful pool management. Row-Level Security \(RLS\) uses a single schema with a tenant\_id column; the database enforces filtering via security policies. This allows full connection pool reuse but requires careful index design \(tenant\_id must lead composite indexes\). Common mistake: Choosing schema-per-tenant for SaaS with 1000\+ tenants without realizing each tenant effectively needs dedicated connections.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T21:42:58.239238+00:00— report_created — created