Pergunta de entrevista para Desenvolvedor Backend

Você precisa tirar uma capacidade de um monólito grande e colocá-la no próprio serviço. Como você faria isso sem um release de uma vez só?

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

Resposta rápida

Use o padrão strangler: coloque uma fachada na frente da capacidade, construa o novo serviço atrás dela e mova o tráfego incrementalmente com uma feature flag enquanto o monólito segue como plano B. Divida os dados por último, normalmente com escrita dupla e backfill até o novo repositório virar a fonte da verdade, e mantenha uma fase de verificação em que os dois caminhos rodam e os resultados são comparados antes de apagar o código antigo.

Por que os entrevistadores perguntam isso

Isso testa julgamento de migração, que é a maior parte do trabalho de backend sênior. O entrevistador quer passos incrementais com rollback em cada etapa, consciência de que dividir os dados é mais difícil do que dividir o código, e uma definição de pronto que inclui apagar o caminho antigo. Candidatos que descrevem um rewrite e um fim de semana de virada estão contando como o incidente aconteceu.

Como estruturar sua resposta

  • Comece por uma costura: roteie as chamadas por uma fachada ou interface.
  • Mova o tráfego incrementalmente atrás de uma flag, mantendo o rollback barato.
  • Trate a divisão de dados explicitamente com escrita dupla e backfill.
  • Defina conclusão como o caminho antigo removido, com verificação antes disso.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Eu criaria primeiro uma costura. Mesmo dentro do monólito, todos os chamadores dessa capacidade passam por uma única interface, o que muitas vezes é um refactor que vale por si só, porque expõe o quão embolada a fronteira realmente está. Depois o novo serviço implementa o mesmo contrato, e a fachada roteia uma pequena porcentagem do tráfego para ele atrás de uma flag, começando por chamadas somente leitura em que uma resposta errada é barata. Eu rodo os dois em modo sombra por um tempo, mandando a mesma requisição para cada um e comparando as respostas, porque isso pega os casos de borda que ninguém documentou. Os dados são a parte difícil: eu faço escrita dupla, backfill do histórico, reconciliação, e só então o novo repositório vira a fonte da verdade, com o monólito lendo do serviço em vez das tabelas compartilhadas. Cada passo tem um rollback que é virar uma flag. E a migração não termina até o código antigo e as tabelas dele serem apagados; já vi migrações strangler travarem em noventa por cento e deixarem dois sistemas para manter por anos, o que é pior do que qualquer uma das opções isoladas.

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ê trataria uma transação que atravessava a fronteira antiga?
  • Como você compara resultados em modo sombra sem duplicar efeitos colaterais?
  • O que te faria parar e reverter a migração inteira?

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