Pergunta de entrevista para Desenvolvedor Backend

O tráfego dobra e seu serviço começa a enfileirar requisições até tudo estourar em timeout. O que você faz?

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

Resposta rápida

Aplique backpressure em vez de bufferizar. Limite toda fila, descarte carga cedo com um 429 ou 503 quando os limites de concorrência forem atingidos, e rejeite requisições cujo prazo já passou em vez de trabalhar nelas. Filas ilimitadas convertem uma sobrecarga num colapso de latência, porque cada requisição espera atrás de trabalho que ninguém mais aguarda. Priorize por camada se parte do tráfego importa mais, e escale automaticamente por um sinal que antecipa, como profundidade de fila.

Por que os entrevistadores perguntam isso

Isso separa quem já esteve de plantão durante uma sobrecarga de quem não esteve. O entrevistador quer ouvir que uma fila não é capacidade grátis, que descartar carga é uma escolha de projeto legítima e que jogar fora trabalho velho restaura vazão. Também sonda se você conhece a intuição de teoria de filas: passada a saturação, a latência sobe sem nenhum aumento de vazão útil.

Como estruturar sua resposta

  • Explique por que bufferizar piora a sobrecarga em vez de melhorar.
  • Limite as filas e descarte carga com um código de status explícito.
  • Descarte trabalho cujo prazo já expirou.
  • Acrescente priorização e um sinal de escala que reaja a tempo.

Exemplo de resposta

Exemplo falado, em primeira pessoa

O instinto é aumentar a fila, mas isso só converte uma sobrecarga em falha lenta, porque toda requisição fica atrás de um acúmulo e, quando é atendida, o cliente já desistiu. Então a primeira coisa que faço é limitar a fila e adicionar um limite de concorrência, e quando está cheio eu retorno 503 com um retry after imediatamente. Rejeitar rápido é mais gentil do que estourar timeout devagar, tanto para o usuário quanto para o sistema. Segundo, eu checo o prazo antes de fazer o trabalho: se a requisição esperou mais do que o orçamento dela, eu descarto, o que libera capacidade para requisições que ainda podem ter sucesso. Essa mudança sozinha é a que visivelmente recupera a vazão durante um incidente. Depois vem a priorização, porque nem todo tráfego é igual; num sistema nós descartamos primeiro o tráfego de sincronização em segundo plano e mantivemos as requisições interativas fluindo. E eu escalo por profundidade de fila ou concorrência, não por CPU médio, já que a CPU achata perto da saturação e reage tarde demais para ser útil.

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ê escolheria um limite de concorrência em vez de chutar um?
  • Qual é a diferença entre descarte de carga e limitação de taxa aqui?
  • Como você garante que as requisições descartadas não tentem de novo todas ao mesmo tempo?

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