Pergunta de entrevista para Desenvolvedor Backend

Sua API começa a retornar timeouts sob carga, mas a CPU do banco está baixa e as queries parecem rápidas. Onde você procura?

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

Resposta rápida

Essa combinação aponta para esgotamento do pool de conexões ou um limite de concorrência parecido, não para o banco estar lento. Olhe o tempo de espera no pool e as conexões ativas versus ociosas: as requisições estão na fila por uma conexão enquanto cada uma que a segura demora demais, muitas vezes por causa de uma chamada externa lenta dentro de uma transação, um timeout faltando ou uma conexão vazada que nunca volta. Corrija primeiro o tempo de retenção, depois dimensione o pool de forma deliberada.

Por que os entrevistadores perguntam isso

É um incidente realista em que a métrica óbvia parece saudável, então testa se você raciocina sobre o caminho inteiro da requisição. O entrevistador quer ouvir sobre fila por um recurso, o perigo de fazer chamadas de rede dentro de uma transação e por que um pool maior costuma ser a correção errada. Saber que o tamanho do pool deve se relacionar à capacidade do banco e não à contagem de instâncias mostra experiência operacional real.

Como estruturar sua resposta

  • Reformule o sintoma como espera por um recurso, não como query lenta.
  • Cite as métricas que confirmam: tempo de espera no pool, conexões ativas, saturação.
  • Liste as causas comuns de retenção longa de conexão.
  • Explique como você dimensiona o pool e o que acontece se você só aumentá-lo.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Queries rápidas mais requisições lentas significa que o tempo está sendo gasto esperando por algo, e o pool é o suspeito de sempre. Eu olharia o tempo de espera no pool e quanto tempo as conexões ficam retidas, mais a contagem do lado do banco de sessões ativas versus ociosas em transação. Um monte de idle in transaction é o sinal claro: alguém abriu uma transação e depois fez um trabalho que não é de banco. Isso é quase sempre a causa, uma chamada HTTP para um provedor de pagamento ou uma serialização lenta dentro de uma transação, então cada requisição segura uma conexão por um segundo em vez de cinco milissegundos e o pool esvazia com uma fração do tráfego. A correção é encurtar a seção crítica: fazer a chamada externa antes ou depois da transação, adicionar timeouts de statement e de transação, e garantir que todo caminho devolva a conexão mesmo em caso de erro. Só depois disso eu mexeria no tamanho, e com cuidado, porque cada instância multiplica aquilo. Aumentar o pool sem corrigir o tempo de retenção só move a fila para o banco e transforma um endpoint lento numa queda geral.

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ê decidiria o tamanho certo de pool para dez instâncias da aplicação?
  • O que idle in transaction indica, e como você pega isso cedo?
  • Onde um proxy de conexões ajuda, e o que ele não resolve?

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