Pergunta de entrevista para Desenvolvedor Backend

Você está construindo um produto business to business. Como você isola os dados de um cliente dos de outro?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

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

Exemplo falado, em primeira pessoa

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 funciona

Perguntas 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

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot