# Kafka Stream Database Change Connect
## Change Data Management
Você pode querer verificar sobre Change Data Management . Você pode usar Debeziumo utilitário que escuta o evento que está acontecendo no seu banco de dados e os envia para o seu tópico Kafka.
### O fluxo de trabalho pode ser resumido como:
- O Registro chega ao DB.
- Os logs de transações são gravados pelo banco de dados.
- O conector Debezium rastreia os logs e envia as alterações para o - Kafka por meio do Kafka connect.
## O que é Debézium?
Debezium é uma plataforma de código aberto para CDC construída sobre Apache Kafka . Seu uso principal é registrar todas as alterações em nível de linha confirmadas em cada tabela do banco de dados de origem em um log de transações. Cada aplicativo que escuta esses eventos pode executar as ações necessárias com base em alterações incrementais de dados.
## Stados do Debezium
- Mesmo que o seu Debezium fique inativo, quando ele for ativado ele dará todas as alterações ocorridas durante o tempo de inatividade. Será tolerante a falhas nesse sentido.
- Você estará ouvindo centralizar o banco de dados em vez de enviar vários serviços. Isso permite um princípio de fonte única de verdade.
- Debezium fornece uma biblioteca de conectores, suportando vários bancos de dados como MySQL, MongoDB, PostgreSQL e outros.
- Esses conectores podem monitorar e registrar as alterações do banco de dados e publicá-las em um serviço de streaming como o Kafka.
- Além disso, o Debezium monitora mesmo que nossos aplicativos estejam inativos . Ao reiniciar, ele começará a consumir os eventos de onde parou, para não perder nada.
## Arquitetura Debézium
A implantação do Debezium depende da infraestrutura que temos, mas, mais comumente, usamos o Apache Kafka Connect.
### Kafka Connect é uma estrutura que opera como um serviço separado junto com o corretor Kafka.
- Nós o usamos para transmitir dados entre o Apache Kafka e outros sistemas.
-Também podemos definir conectores para transferir dados para dentro e para fora do Kafka.
- O diagrama mostrado abaixo mostra as diferentes partes de um pipeline de captura de dados de alterações baseado em Debezium:
- Arquitetura da plataforma Debezium
- Primeiro, à esquerda, temos um banco de dados de origem MySQL cujos dados queremos copiar e usar em um banco de dados de destino como PostgreSQL ou qualquer banco de dados analítico.
- Segundo, o conector Kafka Connect analisa e interpreta o log de transações e o grava em um tópico Kafka.
- Em seguida, Kafka atua como um intermediário de mensagens para transferir de forma confiável o conjunto de alterações para os sistemas de destino.
- Então, à direita, temos conectores Kafka pesquisando Kafka e enviando as alterações para os bancos de dados de destino.
- Debezium utiliza Kafka em sua arquitetura , mas também oferece outros métodos de implantação para satisfazer nossas necessidades de infraestrutura.
- Podemos usá-lo como um servidor independente com o servidor Debezium ou podemos incorporá-lo ao código do nosso aplicativo como uma biblioteca.
- Veremos esses métodos nas seções a seguir.
3.3. Servidor Debezium
O Debezium fornece um servidor independente para capturar as alterações do banco de dados de origem. Está configurado para usar um dos conectores de origem do Debezium.
Além disso, esses conectores enviam eventos de mudança para diversas infraestruturas de mensagens, como Amazon Kinesis ou Google Cloud Pub/Sub.
3.4. Debézium incorporado
Kafka Connect oferece tolerância a falhas e escalabilidade quando usado para implantar Debezium. Entretanto, às vezes nossos aplicativos não precisam desse nível de confiabilidade e queremos minimizar o custo de nossa infraestrutura.
.
.
.

## Link
.
.
.
https://www.figma.com/file/cCJjtl1YwOm0Eg62yYmf8F/Untitled?type=design&node-id=0-1&mode=design&t=WDu8C1e1aWFmyPxE-0