Pular para o conteudo principal

Como Explicar Trade-offs de Consistência em Entrevista

Como responder perguntas sobre consistência sem cair nem na abstração vazia nem na fantasia de que tudo precisa ser imediatamente consistente.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

O problema

Pergunta sobre consistência em entrevista assusta porque muita gente lembra da parte mais seca do assunto.

Ai a resposta cai numa destas:

  • teoria demais
  • slogan demais
  • certeza demais

E nenhuma ajuda muito.

O avaliador raramente quer um mini curso de sistemas distribuidos.

Ele quer descobrir se você sabe pensar assim:

que tipo de erro esse sistema pode mostrar para o usuário, e quanto custa evitar isso?

Modelo mental

Quando perguntarem sobre consistência, troque a pergunta escondida.

Em vez de pensar:

“Qual palavra técnica eu deveria usar?”

pense:

“Depois de uma escrita, o que a leitura pode ver? E isso e aceitavel para esse caso?”

Esse deslocamento melhora muito a resposta.

Porque consistência boa em entrevista não e sobre parecer sofisticado.

E sobre conectar garantia técnica com impacto real.

Quebrando o problema

Comece pelo caso de negócio

Consistência só faz sentido quando ancorada em um fluxo.

Exemplos:

  • saldo de conta
  • feed de noticias
  • contagem de likes
  • estoque quase no limite

Sem contexto, a resposta vira teoria flutuando no ar.

Nomeie a anomalia, não só a garantia

Em vez de falar só “quero consistência forte”, fica melhor falar:

  • “não posso mostrar saldo antigo depois de confirmar debito”
  • “não posso vender duas vezes o ultimo item”
  • “posso aceitar atraso pequeno em likes e ranking”

Isso mostra maturidade porque você discute a falha visível, não só o termo.

Fale do custo

Garantia mais forte normalmente cobra alguma coisa:

  • mais coordenação
  • mais latência
  • menos disponibilidade em certos cenarios
  • mais complexidade operacional

A resposta quase sempre melhora quando você explicita o custo da sua escolha.

Lembre que ha garantias intermediarias

Muita resposta fica pior porque cai num falso binario:

  • tudo forte
  • tudo eventual

No mundo real, existem garantias intermediarias bem uteis, como:

  • read-your-own-writes
  • monotonic reads

Elas mostram que você sabe buscar o nivel certo de previsibilidade sem exagero.

Separar escrita, leitura e propagacao ajuda

Em sistema distribuido, nem sempre o problema esta em “o banco e inconsistente”.

As vezes e:

  • escrita aceita em um lugar
  • leitura feita em replica atrasada
  • cache ainda velho
  • evento ainda não propagado

Falar disso com clareza costuma subir bastante o nivel da resposta.

Exemplo simples

Pergunta de entrevista:

“Você usaria consistência eventual ou forte num sistema de pedidos?”

Resposta fraca:

“Depende, mas eventual costuma escalar melhor.”

Resposta melhor:

“Eu separaria o fluxo. Na confirmação do pagamento e na reserva de estoque mais crítica, eu quero reduzir o risco de leitura velha ou dupla venda. Já para dashboard interno, analytics ou contagem agregada, eu posso aceitar atraso pequeno. O ponto e decidir onde a divergencia visível e toleravel.”

Perceba a diferença.

A segunda resposta:

  • escolhe por fluxo
  • fala de risco real
  • evita slogan técnico solto

Erros comuns

  • Citar CAP theorem sem conectar com o caso.
  • Responder “depende” e parar por ai.
  • Tratar consistência eventual como sinônimo de bagunca.
  • Defender consistência forte em tudo sem falar de custo.
  • Ignorar garantias intermediarias e experiencias do usuário.

Como um senior pensa

Quem tem mais experiência geralmente organiza a resposta em tres partes:

  1. que erro eu quero evitar
  2. onde esse erro realmente importa
  3. quanto estou disposto a pagar para reduzir esse risco

Essa estrutura quase sempre produz respostas mais fortes do que recitar definicoes.

Porque deixa claro que você esta escolhendo uma garantia, não apenas nomeando uma.

O que o entrevistador quer ver

Em entrevista, o avaliador quer ver julgamento sob restrição.

Você sobe de nivel quando:

  • ancora a resposta em fluxo de negócio
  • fala de anomalia visível
  • admite custo das garantias
  • traz opcoes intermediarias quando fizer sentido

Uma resposta forte costuma soar assim:

“Eu não escolheria um nivel de consistência para o sistema inteiro de uma vez. Eu escolheria por fluxo, olhando onde leitura velha ou divergencia causam dano real e onde atraso pequeno e aceitavel.”

Falar de consistência como trade-off e muito melhor do que falar dela como religiao técnica.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Próximo artigo Deduplicação e Idempotencia no Código Artigo anterior O que Acontece Quando Duas Pessoas Clicam ao Mesmo Tempo

Continue explorando

Artigos relacionados