A POC tem o intuito de simular o conceito de CDC e Sink usando kafka e o postgres como database. Usando debezium conseguimos monitorar todas as alterações do banco livedb
e enviar para o tópico do kafka. No diretório scripts
tem os arquivos de configuração do debezium e o sink. O sink é responsável de configurar o conector para enviar as mensagens do tópico para outro database, nesse caso o eventsdb
.
A POC também valida o uso da mesma versão sequelize
para conectar versões diferentes de postgres 12 e 14, além de executar as migrations de acordo com cada configuração.
Install the dependencies and devDependencies and start the server.
$ make prepare
$ make seeders
O sink conector utilizando tabela particionada existe uma restrição usando a versão da lib postgresql mais rescente. A princípio só funciona na versão 42.2.10 já atualizada no diretório dos conectors.
-
https://docs.confluent.io/cloud/current/connectors/cc-postgresql-sink.html#cc-postgresql-sink
-
https://docs.confluent.io/cloud/current/connectors/cc-postgresql-sink.html
-
https://github.com/pagarme/data-kafka-connectors/blob/master/s3-sink-data/s3-sink-data-big-four.yml
-
https://rmoff.net/2021/03/12/kafka-connect-jdbc-sink-deep-dive-working-with-primary-keys/