01
Modelos de isolamento: silo, pool e bridge
A primeira decisão de um SaaS multi-tenant é o grau de isolamento entre clientes. Três modelos dominam o debate. No modelo silo, cada tenant recebe sua própria stack (banco, filas, às vezes até compute) dedicada. No modelo pool, todos os tenants compartilham a mesma infraestrutura e o isolamento é lógico, garantido por uma coluna tenant_id em cada tabela. O modelo bridge é o meio termo: compartilha compute e aplicação, mas isola o dado sensível (um banco ou schema por tenant) onde o custo de vazamento é mais alto.
No nível do banco, isso se materializa em três estratégias: banco por tenant (isolamento físico máximo, custo operacional alto), schema por tenant (isolamento lógico forte dentro do mesmo cluster) e row-level com tenant_id (uma única tabela com a coluna discriminadora). A escolha define seu custo, seu blast radius e a complexidade de onboarding de cada novo cliente.
| Modelo | Isolamento | Custo / tenant | Onboarding | Blast radius | Quando usar |
|---|---|---|---|---|---|
| Banco por tenant (silo) | Físico, máximo | Alto | Lento (provisiona stack) | Mínimo: falha fica contida | Enterprise, compliance rígido, dado regulado |
| Schema por tenant (bridge) | Lógico forte | Médio | Médio (cria schema + migra) | Médio: cluster compartilhado | Mix de clientes médios e grandes |
| Row-level tenant_id (pool) | Lógico via aplicação | Baixo | Rápido (insere linha) | Alto: erro de filtro vaza tudo | SMB em escala, alto volume de tenants |
Na prática, SaaS maduros raramente escolhem um único modelo. Adotam um pool para a maioria (SMB) e oferecem silo como plano premium para clientes enterprise que exigem isolamento físico. Esse híbrido é o bridge na sua forma mais comercial: a mesma aplicação roteia para o storage certo conforme o plano do tenant.