Skip to main content

MySQL to Kafka: Turn Database Changes into a Real-Time Event Stream

In many architectures, MySQL remains the core transactional database while Kafka handles event delivery, asynchronous decoupling, and downstream subscriptions. The hard part is not realizing this pattern is useful. The hard part is building the CDC pipeline in a stable and maintainable way.

According to the latest NineData replication matrix, MySQL -> Kafka supports full replication and incremental replication.

Typical use cases

  • Delivering MySQL changes into Kafka for multiple downstream consumers.
  • Building event streams for orders, users, inventory, and operational systems.
  • Supplying a unified real-time input channel for streaming, monitoring, and recommendation systems.

What NineData provides

  • Full replication to initialize historical data into Kafka topics.
  • Incremental replication to continuously stream Binlog changes.
  • Visual task configuration instead of building a custom CDC service.
  • Operational visibility through task status, logs, and delay monitoring.

Important note

  • This link focuses on data delivery, not schema replication.
  • MySQL must enable Binlog with binlog_format=ROW and binlog_row_image=FULL.
  • If the source is a replica, log_slave_updates is also required.
  • Kafka needs the required topic access privileges.

Learn more