As três opções são schema compartilhado com uma coluna de tenant id, um schema por tenant e um banco por tenant, trocando simplicidade operacional por isolamento. Schema compartilhado escala melhor e custa menos, mas exige que o filtro de tenant seja aplicado estruturalmente, por exemplo com row level security ou uma camada de dados que sempre o aplique. Banco por tenant dá o isolamento mais forte e a restauração por cliente mais fácil, a um custo operacional real.
Por que os entrevistadores perguntam isso
Esta é uma pergunta de arquitetura com consequências comerciais óbvias: afeta o custo de onboarding, vizinhos barulhentos, promessas de compliance e como você restaura os dados de um cliente específico. O entrevistador quer uma discussão de trade-offs, não um favorito. Mencionar row level security, esforço de migração em milhares de schemas e backup e exportação por tenant mostra que você pensou além da primeira reunião de projeto.
Como estruturar sua resposta
- Apresente os três modelos num eixo de isolamento versus custo.
- Diga qual é o seu padrão e as condições que o mudariam.
- Explique como você aplica a fronteira estruturalmente, não por convenção.
- Cubra operação: migrações, backups, restauração por tenant e vizinhos barulhentos.
Exemplo de resposta
Meu padrão é schema compartilhado com um tenant id em toda tabela, porque é o mais barato de rodar e dar onboarding num cliente é um insert em vez de um job de provisionamento. O perigo é óbvio, uma cláusula where faltando vaza dados entre clientes, então eu nunca deixo isso por conta da disciplina. Eu uso row level security com o tenant definido a partir da sessão autenticada, então mesmo uma query escrita à mão não retorna nada fora do tenant, e adiciono testes que deliberadamente tentam ler linhas de outro tenant. Eu migro para schema ou banco por tenant quando existe um motivo real: um cliente com exigência contratual de residência de dados, um punhado de contas enterprise grandes o bastante para serem a própria carga, ou um regime de compliance que quer separação demonstrável. Os custos são os que as pessoas subestimam: uma migração agora roda em cada schema, o pooling de conexões fica mais difícil, e você precisa de automação para provisionamento e restauração por tenant. Eu também já tive que resolver vizinhos barulhentos separadamente, com limites de taxa por tenant, porque isolamento de dados não é isolamento de capacidade.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você restauraria os dados de um cliente a partir do backup num schema compartilhado?
- Como você roda uma migração de schema em milhares de tenants com segurança?
- Como você impede que um tenant grande degrade todos os outros?
Mais perguntas para Desenvolvedor Backend
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas