BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Meetup//Meetup Calendar 1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
NAME:Craft & Code Club
X-WR-CALNAME:Craft & Code Club
BEGIN:VTIMEZONE
TZID:America/Sao_Paulo
TZURL:http://tzurl.org/zoneinfo-outlook/America/Sao_Paulo
X-LIC-LOCATION:America/Sao_Paulo
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
TZNAME:-02
DTSTART:19701101T000000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
TZNAME:-03
DTSTART:19700215T000000
RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=3SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:event_316990495@meetup.com
SEQUENCE:1
DTSTAMP:20261019T004734Z
DTSTART;TZID=America/Sao_Paulo:20261019T200000
DTEND;TZID=America/Sao_Paulo:20261019T213000
SUMMARY:Relógios Lógicos: de Lamport a Bloom Clocks
DESCRIPTION:Craft & Code Club\n**Deep Dive - Relógios Lógicos: de Lampor
 t a Bloom Clocks**\n\nEm sistemas distribuídos não existe um relógio gl
 obal confiável. Como então saber a ordem em que as coisas aconteceram\, 
 detectar conflitos e concorrência\, ou decidir qual versão de um dado é
  a mais recente?\n\nNa próxima segunda\, vamos navegar pelo mundo dos rel
 ógios lógicos\, partindo dos fundamentos e chegando até as estruturas q
 ue rodam dentro de bancos de dados distribuídos reais:\n\n* **Lamport Clo
 cks**: a ideia que começou tudo\, e por que ela não é suficiente\n* **V
 ector Clocks**: como detectar que duas coisas aconteceram "ao mesmo tempo"
 \n* **Hybrid Logical Clocks**: o compromisso que bancos distribuídos mode
 rnos adotaram\n* **Version Vectors e Dotted Version Vectors**: o que realm
 ente roda dentro de um KV store leaderless\n* **Matrix Clocks e Bloom Cloc
 ks**: o que acontece quando você tem milhares de nós e o vetor não cabe
  mais\n\nAo longo do caminho\, vamos falar sobre exemplos de uso em sistem
 as do mundo real e os trade-offs entre cada abordagem.\n\nEsse é o primei
 ro de dois episódios sobre o tema. No segundo\, aprofundamos em **CRDTs e
  OT/Operational Transformation**.\n\n**Segunda-feira\, 19/10\, às 20h**\n
 **O link da sala do Zoom será compartilhado no dia do evento na comunidad
 e**\n\nTraga suas dúvidas
URL;VALUE=URI:https://www.meetup.com/craftcodeclub/events/316990495/
STATUS:CONFIRMED
CREATED:20261015T022355Z
LAST-MODIFIED:20261015T022355Z
CLASS:PUBLIC
END:VEVENT
BEGIN:VEVENT
UID:event_317039240@meetup.com
SEQUENCE:1
DTSTAMP:20261019T004734Z
DTSTART;TZID=America/Sao_Paulo:20261026T200000
DTEND;TZID=America/Sao_Paulo:20261026T213000
SUMMARY:Clube do Livro DDIA: Capítulo 7 - Sharding - Parte 1
DESCRIPTION:Craft & Code Club\nDividir os dados entre várias máquinas pa
 rece simples até você adicionar uma máquina nova e descobrir que quase 
 todas as chaves mudaram de lugar. A forma de dividir decide quais consulta
 s ficam baratas\, onde a carga se acumula e quanto custa crescer.\nVamos a
 brir o Capítulo 7\, 'Sharding'\, de Designing Data-Intensive Applications
  (2ª edição)\, de Martin Kleppmann e Chris Riccomini.\n\nVamos discutir
  quando vale dividir um banco em shards\, quando é melhor não dividir\, 
 e como escolher a forma de dividir os dados para espalhar volume e escrita
 s entre os nós.\nVamos passar pela diferença entre sharding e replicaç
 ão (e pelos muitos nomes que um shard recebe)\, pelos prós e contras de 
 shardear e pelo uso de shards para multitenancy\, com isolamento de recurs
 os e de falhas\, backup por cliente e residência de dados. Depois\, as fo
 rmas de dividir dados chave-valor: key range sharding\, com range scans ef
 icientes e o risco de hot spots quando a chave é um timestamp\, e hash sh
 arding\, do hash mod N que move quase tudo ao número fixo de shards\, ao 
 hash range e à variante do Cassandra e do ScyllaDB\, até chegar ao consi
 stent hashing.\n\nE\, como sempre\, trazendo para o dia a dia: quando uma 
 máquina só ainda dá conta (e hoje ela dá conta de muita coisa)\, como 
 escolher uma partition key sem se arrepender depois\, por que usar timesta
 mp como chave joga todas as escritas num shard só e o que pesar antes de 
 dar um shard para cada cliente. Uma conversa aberta\, sem aula e sem dono 
 da razão.\n\n**✨ Participa da Comunidade!**\n\n🌐 Site: [https://craf
 tcodeclub.io](https://craftcodeclub.io/)\n💬 Comunidade: [https://craftc
 odeclub.io/join](https://craftcodeclub.io/join)\n📅 Próximos eventos: [
 https://craftcodeclub.io/events](https://craftcodeclub.io/events)\n📖 O 
 livro PT: [https://link.amazon/B0j5WeuXg](https://link.amazon/B0j5WeuXg)\n
 📖 O livro EN: [https://link.amazon/B0ct3Q7K7](https://link.amazon/B0ct3
 Q7K7)\n📚 Clube do Livro DDIA: [https://craftcodeclub.io/book-clubs/desi
 gning-data-intensive-applications](https://craftcodeclub.io/book-clubs/des
 igning-data-intensive-applications)\n\n**O que você vai ver:**\n\n* Shard
 ing vs replicação: cada registro num shard só\, mas cada shard replicad
 o em vários nós\n* Shard\, partition\, range\, region\, vnode\, tablet: 
 o mesmo conceito com nomes diferentes\, e nada a ver com network partition
 s\n* Prós e contras: escalar volume e escritas\, ao custo da partition ke
 y\, de joins e de transações entre shards\n* Sharding para multitenancy:
  isolamento de recursos\, permissões e falhas\, cell-based architecture\,
  backup por cliente e residência de dados\n* Key range sharding: a encicl
 opédia da Figura 7-2\, range scans e hot spots em chaves próximas\n* Pre
 -splitting\, split e merge de shards\, e por que dividir um shard custa ca
 ro\n* Hash mod N: por que adicionar um nó move quase todas as chaves\n* N
 úmero fixo de shards: 1.000 shards em 10 nós e a dificuldade de escolher
  esse número\n* Hash range sharding e a variante do Cassandra e do Scylla
 DB\, com limites aleatórios entre os ranges\n* Consistent hashing\, rende
 zvous hashing e jump consistent hashing\n\n**🎥 Encontros passados que v
 ocê também vai gostar**\n\n* [Clube do Livro DDIA: Capítulo 7 - Shardin
 g - Parte 2](https://www.youtube.com/watch?v=kbKChBNwUsw)\n* [Clube do Liv
 ro DDIA: Capítulo 6 - Replicação - Parte 3](https://www.youtube.com/wat
 ch?v=VFQytAPKt4M)\n* [Clube do Livro DDIA: Capítulo 6 - Replicação - Pa
 rte 2](https://www.youtube.com/watch?v=us0jsqil-yc)\n* [Clube do Livro DDI
 A: Capítulo 6 - Replicação](https://www.youtube.com/watch?v=318mFwMAje0
 )\n* [Clube do Livro DDIA: Capítulo 5 - Encoding and Evolution - Parte 2]
 (https://www.youtube.com/watch?v=pg96OUOXhXE)\n* [Clube do Livro DDIA: Cap
 ítulo 5 - Encoding and Evolution](https://www.youtube.com/watch?v=8uvly-a
 i-es)\n* [System Design #09: Consistent Hashing - Scaling Horizontal | Byt
 eByteGo Book Club](https://www.youtube.com/watch?v=bRtpFllGqFQ)\n* [Read R
 eplica: Escalando Acessos ao Banco de Dados](https://www.youtube.com/watch
 ?v=GoPGgzpHbG0)\n* [System Design #10: Design de Key-Value Store Distribu
 ído | ByteByteGo Book Club](https://www.youtube.com/watch?v=nYZvHVksbFo)\
 n* [Deep Dive - Relógios Lógicos: de Lamport a Bloom Clocks](https://www
 .youtube.com/watch?v=K5avXPf_hO8)\n\n#DDIA #DesigningDataIntensiveApplicat
 ions #Sharding #Particionamento #SistemasDistribuídos #BancoDeDados #Craf
 tCodeClub #ClubeDoLivro #EngenhariaDeSoftware
URL;VALUE=URI:https://www.meetup.com/craftcodeclub/events/317039240/
STATUS:CONFIRMED
CREATED:20261018T203456Z
LAST-MODIFIED:20261018T203456Z
CLASS:PUBLIC
END:VEVENT
BEGIN:VEVENT
UID:event_317039364@meetup.com
SEQUENCE:1
DTSTAMP:20261019T004734Z
DTSTART;TZID=America/Sao_Paulo:20261102T200000
DTEND;TZID=America/Sao_Paulo:20261102T213000
SUMMARY:Clube do Livro DDIA: Capítulo 7 - Sharding - Parte 2
DESCRIPTION:Craft & Code Club\nOs dados já estão divididos. Aí uma úni
 ca chave passa a receber mais tráfego do que um shard aguenta\, um nó le
 nto é dado como morto e o cluster começa a mover dados no pior momento p
 ossível.\nVamos para a segunda e última parte do Capítulo 7\, 'Sharding
 '\, de Designing Data-Intensive Applications (2ª edição)\, de Martin Kl
 eppmann e Chris Riccomini. Saímos de como dividir os dados para o que aco
 ntece com um banco shardeado em produção: carga desigual\, rebalanceamen
 to\, roteamento de requisições e índices secundários.\n\nVamos passar 
 por workloads com skew e hot keys\, como o post de uma celebridade\, e pel
 as técnicas para aliviar um shard quente\; pelo rebalanceamento automáti
 co vs manual e o risco de falhas em cascata quando ele se junta à detecç
 ão automática de falhas\; pelas três formas de levar uma requisição a
 té o nó certo e por quem guarda a verdade sobre onde está cada shard (Z
 ooKeeper\, etcd\, Raft embutido e gossip)\; e pelos índices secundários 
 locais e globais\, com o trade-off entre escrita barata e leitura barata. 
 Para fechar\, os principais pontos do capítulo e o problema que ele deixa
  em aberto: escritas que precisam tocar vários shards.\n\nE\, como sempre
 \, trazendo para o dia a dia: como lidar com um post que viraliza e concen
 tra a carga numa chave só\, quando vale deixar o rebalanceamento nas mão
 s de uma pessoa\, como o seu banco descobre em que nó está cada shard e 
 por que uma busca por índice secundário pode acabar consultando todos os
  shards. Uma conversa aberta\, sem aula e sem dono da razão.\n\n**✨ Par
 ticipa da Comunidade!**\n\n🌐 Site: [https://craftcodeclub.io](https://c
 raftcodeclub.io/)\n💬 Comunidade: [https://craftcodeclub.io/join](https:
 //craftcodeclub.io/join)\n📅 Próximos eventos: [https://craftcodeclub.i
 o/events](https://craftcodeclub.io/events)\n📖 O livro PT: [https://link
 .amazon/B0j5WeuXg](https://link.amazon/B0j5WeuXg)\n📖 O livro EN: [https
 ://link.amazon/B0ct3Q7K7](https://link.amazon/B0ct3Q7K7)\n📚 Clube do Li
 vro DDIA: [https://craftcodeclub.io/book-clubs/designing-data-intensive-ap
 plications](https://craftcodeclub.io/book-clubs/designing-data-intensive-a
 pplications)\n\n**O que você vai ver:**\n\n* Workloads com skew: chaves d
 istribuídas por igual não significam carga distribuída por igual\n* Hot
  keys: isolar a chave num shard só\, dividir as escritas com prefixos ale
 atórios e o custo disso na leitura\n* Heat management e adaptive capacity
 : como os serviços de nuvem automatizam isso\n* Rebalanceamento automáti
 co vs manual: autoscaling\, o custo de mover dados e as falhas em cascata\
 n* Roteamento de requisições: qualquer nó\, uma camada de roteamento ou
  clientes que conhecem os shards\n* Quem decide onde fica cada shard: ZooK
 eeper\, etcd\, Raft embutido\, config servers do MongoDB e gossip do Riak\
 n* Índices secundários locais: escrita num shard só\, leitura em todos 
 (scatter/gather) e latência de cauda\n* Índices secundários globais: le
 itura num shard só\, escrita em vários e índices que podem ficar desatu
 alizados\n* Resumo do capítulo: key range vs hash\, coordenação e o pro
 blema das escritas entre shards\n\n**🎥 Outros vídeos que você também
  pode gostar**\n\n* [Clube do Livro DDIA: Capítulo 7 - Sharding - Parte 1
 ](https://www.youtube.com/watch?v=-Psv-g4nneQ)\n* [Clube do Livro DDIA: Ca
 pítulo 6 - Replicação - Parte 3](https://www.youtube.com/watch?v=VFQytA
 PKt4M)\n* [Clube do Livro DDIA: Capítulo 6 - Replicação - Parte 2](http
 s://www.youtube.com/watch?v=us0jsqil-yc)\n* [Clube do Livro DDIA: Capítul
 o 6 - Replicação](https://www.youtube.com/watch?v=318mFwMAje0)\n* [Clube
  do Livro DDIA: Capítulo 5 - Encoding and Evolution - Parte 2](https://ww
 w.youtube.com/watch?v=pg96OUOXhXE)\n* [Clube do Livro DDIA: Capítulo 5 - 
 Encoding and Evolution](https://www.youtube.com/watch?v=8uvly-ai-es)\n* [C
 lube do Livro DDIA: Capítulo 4 - Armazenamento e Recuperação - Parte 2]
 (https://www.youtube.com/watch?v=oZWcumjCZgs)\n* [System Design #10: Desig
 n de Key-Value Store Distribuído | ByteByteGo Book Club](https://www.yout
 ube.com/watch?v=nYZvHVksbFo)\n* [System Design #09: Consistent Hashing - S
 caling Horizontal | ByteByteGo Book Club](https://www.youtube.com/watch?v=
 bRtpFllGqFQ)\n\n#DDIA #DesigningDataIntensiveApplications #Sharding #Parti
 cionamento #SistemasDistribuídos #BancoDeDados #CraftCodeClub #ClubeDoLiv
 ro #EngenhariaDeSoftware
URL;VALUE=URI:https://www.meetup.com/craftcodeclub/events/317039364/
STATUS:CONFIRMED
CREATED:20261018T205145Z
LAST-MODIFIED:20261018T205145Z
CLASS:PUBLIC
END:VEVENT
X-ORIGINAL-URL:https://www.meetup.com/craftcodeclub/events/ical/
X-WR-CALNAME:Craft & Code Club
END:VCALENDAR