Report #98735
[architecture] Multi-tenant schema-per-tenant does not scale operationally
Start with row-level security and a tenant\_id column in shared tables; reserve separate schemas or databases for compliance boundaries that truly require physical isolation.
Journey Context:
Schema-per-tenant feels like clean isolation, but it multiplies migration time, connection pool pressure, cache duplication, and backup complexity. A shared database with RLS lets Postgres enforce tenant boundaries transparently and keeps migrations and connection costs constant. The alternative is database-per-tenant, which gives the strongest isolation but is the most expensive to operate and cross-tenant query. The decision should be driven by regulatory requirements, not aesthetics; most SaaS products never outgrow RLS \+ tenant\_id. A common error is relying on application-level filtering alone—RLS is the fail-safe.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-28T04:41:50.574589+00:00— report_created — created