Mensagens recentes por luciano costa

1 mensagem

Avatar luciano costa
1 mensagem
8 meses atrás

Fórum: arquitetura – Discussão: Abordagens de multitenant

Caros,

Desculpem o atraso no tópico, mas só agora conheci o site, por meio de um tweet…

Iniciamos um projeto com essas dúvidas há alguns meses. Ele ainda não está em produção, logo não poderei dizer o que é melhor, mas considero que tomamos a melhor decisão que poderíamos no momento: fazer da forma mais simples e assumir que não temos como prever o que irá acontecer quando o software for para produção.

Adotamos a solução: 1 banco, N clientes.

Nosso projeto utiliza vraptor3 e hibernate, com o famoso DAO genérico, customizado para este projeto. Colocamos nesse GenericDAO um mecanismo que garante que toda a operação feita sobre a base de dados inclua o campo “clientId” e dispare erros alertando o desenvolvedor no caso de ele ter esquecido. É possível anotar um pojo para que ele não utilize esse recurso, se necessário (exceção).

Se de 10 clientes, apenas 1 realmente necessitar mais recursos, ou exigir ambiente separado por motivos contratuais, terá valido a pena contratar os outros 9 ambientes? E se de 10, aumentarmos esse número para 50, ou 100 ou N?

Acredito que poderemos rapidamente identificar casos que realmente necessitem infra específica (exceção) e aí sim montarmos um ambiente distinto para ele. Nesse caso, em vez de 10 ambientes, teremos 2: um com 9 clientes e outro com 1.

O resumo disso é que vejo uma solução híbrida, e que só saberemos o que realmente é necessário a medida em que as coisas forem acontecendo (learn as you go!).

Acho que essa foi a escolha de menor impacto, em caso de possível mudança: se a coisa realmente apertar, dividimos a solução em N.

Claro, cada caso é um caso. Esse, por enquanto, é o nosso.