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
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 funcionaPerguntas 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