Banco de dados: captura de dados de mudança (CDC)
A captura de dados de mudança transforma as escritas no banco num fluxo de eventos que outros sistemas podem consumir. O curso parte do problema da escrita dupla e de três exigências que puxam umas contra as outras: não perder nada, manter a ordem e não quebrar o caminho de escrita. Depois compara quatro técnicas: polling de timestamp, gatilhos, outbox e captura baseada em log. As lições seguintes tratam dos buracos do polling, da entrega pelo menos uma vez, de consumidores idempotentes, da evolução do schema, dos backfills e da escolha para uma aplicação Rails. O fechamento é um desafio de consumidor idempotente.
O que você vai aprender
- ✓Por que publicar um evento ao lado da escrita é uma escrita dupla
- ✓Como polling, gatilhos, outbox e captura baseada em log se comparam em completude e custo
- ✓Os quatro jeitos como o polling de timestamp perde eventos
- ✓Entrega pelo menos uma vez e como construir consumidores idempotentes
- ✓Como a captura de linhas acopla consumidores ao schema e por que payloads de outbox são contratos versionáveis
- ✓Como juntar um backfill e um fluxo de mudanças sem deixar buraco
Quando outra coisa precisa saber
Captura de dados de mudança é a prática de transformar as escritas no seu banco num fluxo de eventos que outros sistemas podem consumir. O nome descreve o mecanismo, e o problema que ele resolve é mais antigo que o nome.
Ler a aula completa grátis →Currículo
7 aulasQuando outra coisa precisa saber
Por que publicar um evento ao lado da escrita é uma escrita dupla e quais exigências a captura cumpre.
Quatro formas de capturar
Compara polling, gatilhos, outbox e captura baseada em log quanto a deletes, escritas extras, ordem e custo.
Os buracos do polling
Os quatro jeitos como o polling perde eventos: deletes, timestamps repetidos, estados intermediários e tabelas sem updated_at.
Ao menos uma vez e idempotência
Por que a entrega é pelo menos uma vez e como consumidores idempotentes, restrições únicas e versões lidam com duplicatas.
O schema que não para
Como renomear colunas quebra consumidores de linhas, por que payloads de outbox são contratos e como fazer backfill com segurança.
O que esta aplicação faria
Classifica as quatro técnicas para esta aplicação Rails e explica por que hoje a resposta é não construir nada.
Juntando tudo
Revisa o curso e propõe implementar apply_changes, um consumidor idempotente que aplica eventos em ordem de versão.