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