Pergunta de entrevista para Engenheiro de Software

Explique o teorema CAP e como ele se aplicou a um sistema em que você trabalhou.

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

Resposta rápida

CAP diz que, quando uma partição de rede separa seus nós, você tem que escolher entre consistência e disponibilidade. Você não pode abrir mão de tolerância a partição, porque redes falham quer você planeje ou não. Então a pergunta real é o que seu sistema faz durante uma partição: recusar escritas para continuar correto, ou aceitá-las e reconciliar depois. Fora de uma partição você pode ter as duas, e é por isso que latência é a troca do dia a dia.

Por que os entrevistadores perguntam isso

Os entrevistadores usam CAP para separar quem decorou três letras de quem rodou sistemas distribuídos. O sinal é entender que tolerância a partição não é opcional, que a escolha só morde durante uma partição, e que no dia a dia você está trocando latência por consistência. Um exemplo concreto de escolher um lado para uma funcionalidade específica é o que dá credibilidade à resposta.

Como estruturar sua resposta

  • Diga que tolerância a partição é um dado, não uma escolha.
  • Enquadre a escolha real como comportamento durante uma partição.
  • Note que fora de partições você troca latência, não disponibilidade.
  • Dê uma funcionalidade em que você escolheu cada lado.

Exemplo de resposta

Exemplo falado, em primeira pessoa

O enquadramento que eu uso é que tolerância a partição não é escolha, porque pacotes são descartados e switches falham independentemente da minha arquitetura. Então o CAP na verdade pergunta o que o sistema faz enquanto está partido: recusar a escrita para ninguém ler dado velho, ou aceitar a escrita e resolver depois. O que eu gosto na extensão PACELC é que ela nomeia a parte com que você lida todo dia, que é que mesmo com tudo saudável você está trocando latência por consistência, porque uma escrita com quórum entre regiões custa round trips. Num produto em que trabalhei a gente dividiu por funcionalidade. Qualquer coisa tocando cobrança passava pelo primário com garantia de leitura após escrita, porque cobrar alguém duas vezes não se resolve com um pedido de desculpas. O feed de atividade lia de réplicas e podia estar alguns segundos atrás, e ninguém nunca percebeu. Mesmo sistema, duas respostas, escolhidas por funcionalidade e não como religião arquitetural.

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

  • O que o PACELC acrescenta ao CAP?
  • Como você daria a um usuário consistência de leitura após escrita em réplicas?
  • O que uma leitura e escrita com quórum realmente garante?

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

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