Contenha primeiro: coloque um timeout agressivo para a latência deles não virar a sua, faça retry com backoff exponencial e jitter só em chamadas idempotentes, e ponha um circuit breaker na frente para parar de martelar algo que já está fora. Depois decida como é o comportamento degradado: enfileirar o trabalho para depois, servir um valor cacheado, ou falhar aquela funcionalidade enquanto o resto do produto continua funcionando.
Por que os entrevistadores perguntam isso
Todo sistema real depende de algo que ele não controla, e o entrevistador quer saber se você projeta para esse fornecedor ter um dia ruim. Eles escutam por timeouts, que são o controle mais comumente esquecido, disciplina de retry atrelada a idempotência, circuit breaking para você não piorar a indisponibilidade, e pensamento em nível de produto sobre degradação graciosa em vez de propagar um 500 para o usuário.
Como estruturar sua resposta
- Coloque um timeout para o problema deles continuar sendo deles.
- Repita só o que é seguro, com backoff e jitter.
- Adicione um circuit breaker para parar de empilhar.
- Defina a experiência degradada para os usuários.
Exemplo de resposta
A primeira coisa que eu checo é se a gente sequer tem um timeout, porque o padrão em muitos clientes HTTP é efetivamente infinito, e é assim que um fornecedor lento enche seu pool de workers e derruba endpoints que não têm nada a ver com ele. Então um timeout agressivo, mais apertado que o meu próprio SLA. Depois retries, mas só em chamadas seguras de repetir, com backoff exponencial e jitter, porque retries sincronizados de toda instância transformam a lentidão deles numa queda completa. Um circuit breaker vai na frente, para que depois de uma sequência de falhas a gente pare de chamar por um tempo e falhe rápido em vez de enfileirar. Depois a pergunta de produto, que é a interessante: o que o usuário deveria ver? Para uma chamada de validação de endereço eu deixaria o pedido passar e marcaria para revisão. Para uma autorização de pagamento eu não posso fingir, então eu enfileiro a tentativa e conto para o usuário com honestidade. E eu estaria no canal de suporte deles com request ids o tempo todo.
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ê decide o valor do timeout?
- Como você testaria se o seu circuit breaker realmente funciona?
- O que você monitoraria para pegar isso antes dos clientes?
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