Choosing a tenancy model
The first architectural decision is how tenants share infrastructure. A pooled model puts every customer in the same database with a tenant identifier on each row. It is the cheapest to run and the quickest to ship, but isolation depends on discipline in the code. A schema-per-tenant or database-per-tenant model costs more to operate and gives stronger separation, easier per-customer backup and simpler data export.
Most products land on a hybrid: pooled by default, with a dedicated option for customers who pay for it or whose sector demands it. We make that choice with you from three inputs: who your customers are, what a data incident would cost, and how many tenants you expect in the first two years.
Whatever the model, we enforce isolation in layers, with row-level rules in the database, tenant context set once at the request boundary, and automated tests that try to cross the line on purpose. Noisy-neighbour controls such as rate limits and per-tenant quotas keep one large customer from slowing everyone else down.
