Camada Zero · 30 · Teorema CAP & Partições de Rede
Toda explicação de boteco do CAP diz "escolhe 2 de 3" e está errada. Partição não é uma escolha, ela acontece sozinha quando um cabo cai ou o GC trava 30s. Aqui você quebra a rede na mão e vê o que sobra pra escolher: consistência ou disponibilidade.
réplica saudávellado A (divergente)lado B (divergente)indisponível (CP)link cortado
5 réplicas do mesmo dado. Sem partição você tem consistência e disponibilidade juntas. Quando a rede racha, a maioria (3 nós) tem quórum e a minoria (2 nós) não. É aí que o tradeoff aparece. CP recusa escrita no lado sem quórum pra nunca divergir. AP aceita dos dois lados e te entrega o problema de reconciliar depois.
Escrita com quórum (a raiz do CP)
funcwrite(v Value) error {
acks := replicate(v, replicas)
quorum := len(replicas)/2 + 1if acks < quorum {
// minoria sem maioria: recusareturn ErrNoQuorum // CP: C sobre A
}
returnnil
}
CP vs AP durante a partição
CP
AP
Escrita no minoritário
recusa
aceita
Consistência
mantida
diverge
Disponibilidade
parcial
total
Ao curar
minoria sincroniza
reconcilia conflito
Exemplos
etcd, ZooKeeper
Cassandra, DNS
🧠 Desafio — CAP & Partições
Quebra a rede aqui de cima nos dois modos antes de responder. As duas últimas são de reflexão: escreve a sua e só então revela o modelo.