trilha

System Design/05 - Reliability Patterns/Availability2 min

Geodes

Perguntas-guia
  • Que problema isso resolve?
  • Quando usar / quando NÃO usar?
  • Qual o principal trade-off?
  • Como isso falha em produção?

Conceito

Geographical des: implantações regionais em que todos os nós atendem todas as requisições, sem primário e sem secundário.

usuário → o nó geográfico mais próximo (qualquer um serve)
          nós sincronizam entre si

Diferente do modelo ativo-passivo, aqui não existe failover a executar: se uma região cai, o tráfego simplesmente vai para outra.

Trade-offs

Os ganhos são latência global e resiliência regional — com RTO próximo de zero, porque não há promoção a fazer.

O custo é o problema mais difícil de sistemas distribuídos: escrita em qualquer região.

Desafio Consequência
Conflito de escrita Duas regiões alteram o mesmo dado simultaneamente
Consistência Necessariamente eventual entre regiões
Custo de replicação Tráfego entre regiões é caro
Soberania de dados Replicar pode violar exigência legal
Custo total N ambientes completos, todos ativos

A resolução de conflito precisa ser decidida por dado: last-writer-wins (simples e perde escritas), CRDTs (convergem por construção, aplicáveis a estruturas específicas), ou uma regra de negócio própria — como fez a Amazon ao unir carrinhos divergentes em vez de escolher um.

Por isso o padrão costuma ser aplicado parcialmente: o dado lido globalmente é replicado em todas as regiões; o dado com escrita conflitante é fixado numa região dona.

Bancos que suportam multi-região ativo-ativo (DynamoDB Global Tables, Cosmos DB, Cassandra) reduzem muito o trabalho, e não eliminam a necessidade de decidir a semântica do conflito.

Comparado a Deployment Stamps: stamps particionam por cliente e não replicam; geodes replicam os mesmos dados em todas as regiões.

Exemplo prático

Uma rede social global com nós em São Paulo, Frankfurt e Singapura.

Um usuário no Brasil escreve num nó brasileiro; a publicação replica para os demais em segundos. Um usuário em Singapura lê do nó local, com latência baixa.

A consistência é eventual: por alguns segundos, um usuário na Alemanha pode não ver a publicação. Para uma rede social, isso é irrelevante.

O mesmo desenho seria inaceitável para saldo bancário — e é por isso que sistemas reais aplicam geodes ao conteúdo e mantêm o dado transacional com região dona e consistência forte.

Relacionado


Parte de Availability · roadmap.sh/system-design

Buscar

Busca por título, seção e texto das notas