Executando verificação de segurança...
2

Dúvida multi-tenant individual ou compartilhado

Olá amigos,

Estou com uma dúvida em um projeto com Postgre onde haverão muitos usuários possuindo chat em tempo real com seus clientes:

Qual tipo de multi tenant utilizar?

Atualmente estou seguindo pelo lógico (separando tudo com tenant_id e em um escopo global utilizando builder com where tenant_id = X).

Será que isso vai ser o suficiente conforme o projeto vai escalando?
Seria mais recomendado fazer um schema pra cada tenant já que estou com POSTGRE?

Agradeço

Carregando publicação patrocinada...
1

Se o projeto é pequeno, o tenant_id vai ser suficiente e mais simples para ser usado agora.

Quando o sistema precisar de mais escala, você pode separar os clientes em grupos e definir um instância do banco para atender aquele grupo, o tenant_id ainda será usado dentro de cada instância.

Se você tiver um grande cliente, que necessita de um poder de banco de dados maior você cria uma instância só para ele, mas não vai precisar mudar nada na aplicação pois será um base de dados que terá apenas um tenant_id, a aplicação nem sabe que mudou alguma coisa.

Provavelmente você vai precisar de algum tipo de Front Controller ou API Gateway para direcionar as requisições para as instâncias corretas, mas até isso ser necessário, vai no mais simples que é melhor.

1

Muito obrigado, projeto é relativamente pequeno porém vai escalonar rápido. Acho que vou começar com db compartilhado mesmo, caso futuramente venha a acontecer problemas, eu separo em schemas. A questão de separar caso seja um grande cliente não sei se seria viavel, pois ao se registrar na aplicação o usuário vai escolher um plano e após efetuar o pagamento já estara apto pra utilização, então não vou ter um controle sobre o tamanho da empresa do cliente.

1
0