Does MySQL have a version of Change Data Capture?

LinkedIn has open-sourced its CDC tool, Databus, which supports MySQL. You can read about how to support MySQL on the wiki of the project: Databus for MySQL and read the blog statement here: Open sourcing Databus: LinkedIn's low latency change data capture system

However, you should note that there may be some limitations:

The current implementation although fully functional should be considered a proof-of-concept. Its main goal is to demonstrate how to write a MySQL fetcher for Databus. The basic functionality of the fetcher has been tested but has not been deployed in our production environment. At LinkedIn, we run a slightly different implementation which relies on a custom-patched MySQL.

Another open-source CDC tool is FlexCDC (implemented in PHP) which was written as a part of the FlexViews project.

[...] FlexCDC which will aim to provide a flexible CDC layer for MySQL based on RBR logging, and Flexviews, which uses FlexCDC to collect the changes necessary to incrementally maintain materialized views.

From: Why are there no (other) change data capture utilities for MySQL 5.1?


Recently I had an academic project where I needed to use CDC with MySQL. There are a few tools available in the market. I was able to create a POC by using Maxwell CDC.

A unique feature of Maxwell is it can parse DDL statements as well. Here is link to the page of Maxwell http://maxwells-daemon.io

Here is complied list of all CDC's : https://github.com/wushujames/mysql-cdc-projects/wiki


I recommend you take a look at Debezium an open-source CDC platform which, amongst others, also supports MySQL.

You can use Debezium to stream changes into Apache Kafka, but by means of its embedded mode you can also use the Debezium connectors as a library in your Java applications and easily propagate data changes to other streaming APIs such as Kinesis etc.

Disclosure: I'm the Debezium project lead.