Comece relacional a menos que você tenha um motivo específico para não começar. O Postgres te dá transações, joins, restrições e um query planner, o que cobre a maioria das cargas e mantém suas opções abertas. Recorra a um document store quando o padrão de acesso é genuinamente uma chave para um blob, quando o schema realmente varia por registro, ou quando você precisa de throughput de escrita além do que um único primário aguenta.
Por que os entrevistadores perguntam isso
O entrevistador quer ver se você escolhe infraestrutura a partir de requisitos ou de moda. Eles escutam por um padrão honesto, um entendimento de que bancos relacionais escalam mais do que as pessoas supõem, e consciência de que abrir mão de joins e transações é um custo real que você paga depois em código de aplicação. Candidatos que dizem que NoSQL é mais rápido sem qualificar geralmente não rodaram nenhum dos dois em escala.
Como estruturar sua resposta
- Diga qual é o seu padrão e por que é o seu padrão.
- Liste os padrões de acesso que te fariam mudar de ideia.
- Cite o que você abre mão ao largar recursos relacionais.
- Aponte que modelos de dados sobrevivem aos serviços.
Exemplo de resposta
Meu padrão é Postgres, e eu quero ser convencido a sair dele, não a entrar. O motivo é que um banco relacional me dá transações, joins e restrições de graça, então eu não preciso acertar meus padrões de acesso logo no primeiro dia. Modelos de dados sobrevivem aos serviços que escrevem neles, e eu prefiro manter flexibilidade na camada de consulta do que na camada de armazenamento. Eu recorro a um document store em casos específicos. Se cada registro é genuinamente autocontido, se o formato varia por tenant, ou se eu preciso de throughput de escrita além de um único primário, a troca faz sentido. O que eu tento ser honesto sobre é o custo: sem joins, cada relacionamento vira código de aplicação, e sem transações, cada atualização de múltiplos documentos vira um problema de idempotência. No meu último projeto a gente manteve as entidades centrais no Postgres e colocou um log de eventos de alto volume em algo feito para isso, o que nos deu escala onde precisávamos sem abrir mão de correção em todo o resto.
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
- Até onde você levaria uma única instância de Postgres antes de fazer sharding?
- Como você modela um relacionamento muitos para muitos num document store?
- Quando você usaria colunas JSONB em vez de um banco separado?
Mais perguntas para Engenheiro de Software
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