Ir para o conteúdo

Detalhes

Replicar dados é fácil enquanto nada muda. O difícil começa quando cada réplica enxerga uma versão diferente da verdade.

Neste encontro do Clube do Livro DDIA vamos abrir o Capítulo 6, 'Replication', de Designing Data-Intensive Applications (2ª edição), de Martin Kleppmann e Chris Riccomini. Vamos discutir como manter cópias dos mesmos dados em várias máquinas e as três grandes famílias de replicação: single-leader, multi-leader e leaderless.

Vamos passar por replicação síncrona vs. assíncrona, failover e replication logs, pelos problemas causados pelo replication lag e pelas garantias que ajudam a lidar com ele. Depois, operação em múltiplas regiões, sync engines e apps local-first, resolução de conflitos com CRDTs e, por fim, quorums, read repair e version vectors no mundo leaderless.

E, como sempre, trazendo para o dia a dia: por que o usuário salva um comentário e não o encontra na tela logo em seguida, o que acontece quando dois nós acham que são o líder (split brain) e como ferramentas de colaboração em tempo real lidam com edições concorrentes. Uma conversa aberta, sem aula e sem dono da razão.

✨ Participa da Comunidade!

💬 Comunidade: https://craftcodeclub.io/join
📅 Próximos eventos: https://craftcodeclub.io/events
📚 Clube do Livro DDIA: https://craftcodeclub.io/book-club/designing-data-intensive-applications

O que vamos abordar:
- Por que replicar: latência, disponibilidade e escala de leitura (e por que replicação não substitui backup)
- Replicação single-leader: líder, followers e o replication log
- Síncrona vs assíncrona: o trade-off entre durabilidade e latência
- Novos followers, snapshots e bancos apoiados em object storage
- Falhas de nós: catch-up recovery, failover e o risco de split brain
- Replication logs: statement-based, WAL shipping e replicação lógica (row-based)
- Replication lag: read-your-writes, monotonic reads e consistent prefix reads
- Multi-leader: operação em várias regiões e topologias de replicação
- Sync engines e apps local-first: colaboração em tempo real e modo offline
- Conflitos de escrita: evitar, resolver manualmente, last write wins, CRDTs e operational transformation
- Leaderless: quorums (w + r maior que n), read repair, hinted handoff e anti-entropy
- Os limites da consistência por quorum e como monitorar staleness
- Escritas concorrentes: happens-before, version vectors e vector clocks

Tópicos relacionados

Book Club
Software Architecture
Computer Programming
Software Development
Software Engineering

Você também pode gostar