The isolation models we build
- Shared database with row-level security: every table carries a tenant identifier, and PostgreSQL row-level security policies enforce it in the database itself. This is cost-efficient and suits most B2B products.
- Schema per tenant: each customer gets its own schema in the same database. It separates data more strongly and suits customers with stricter data-handling requests, at the cost of heavier migrations.
- Database per tenant: for a small number of large customers with strict requirements, at higher infrastructure cost.
Some products mix these, for example row-level security for most customers and a dedicated schema for one large account.
