For stream changes out of my database, the first results are alibaba/canal (Canal is a mature change data capture tool that monitors database transaction logs to stream row-level changes in real time to downstream systems, fitting the need for replication and event streaming with high throughput and reliable delivery), debezium/debezium and apache/flink-cdc (Apache Flink CDC is a distributed streaming framework that captures row-level database changes in real time from logs, supports multiple databases, automates schema evolution, and ensures exactly-once delivery, making it a comprehensive answer to this search). go-mysql-org/go-mysql and rethinkdb/rethinkdb round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Open-source software for streaming row-level database modifications to downstream systems in real time.
Canal is a database replication middleware that performs change data capture by simulating a database replica. It monitors transaction logs to stream incremental data modifications to downstream systems in real time, acting as an event streaming infrastructure that transforms low-level binary logs into structured, consumable message streams. The project distinguishes itself through a high-throughput architecture that utilizes concurrent multi-threaded parsing and stateful log position tracking to ensure reliable data delivery. It employs a pluggable sink architecture that decouples data extra
Canal is a mature change data capture tool that monitors database transaction logs to stream row-level changes in real time to downstream systems, fitting the need for replication and event streaming with high throughput and reliable delivery.
Debezium is a distributed change data capture platform that streams row-level database modifications as real-time events. By parsing database transaction logs, the system broadcasts structural and data changes to message brokers, enabling reactive processing and data integration across distributed architectures. The platform utilizes log-based capture to extract modifications directly from transaction logs, ensuring minimal impact on source system performance while maintaining the original commit order of operations. It employs database-specific connector adapters to translate proprietary bin
Debezium is a distributed change data capture platform that streams row-level database changes in real time by parsing transaction logs, natively integrates with Apache Kafka for fault-tolerant delivery, supports multiple databases via connectors, and handles schema evolution—exactly the CDC tool this search describes.
This project is a streaming data integration framework that captures real-time database changes and synchronizes them with downstream systems. It operates as a distributed streaming ETL and database synchronizer, reading database logs and snapshots to propagate row-level modifications to target sinks. The system supports declarative data integration, allowing users to define source-to-sink data flows using SQL or YAML configurations. It distinguishes itself by automating schema evolution to maintain synchronization when source structures change and ensuring exactly-once delivery and processin
Apache Flink CDC is a distributed streaming framework that captures row-level database changes in real time from logs, supports multiple databases, automates schema evolution, and ensures exactly-once delivery, making it a comprehensive answer to this search.
go-mysql is a toolkit for MySQL database integration, providing a native client driver and the capabilities to implement custom MySQL-compatible servers or proxies. It enables applications to communicate with MySQL servers through standard SQL interface patterns. The project provides specialized support for real-time data synchronization by streaming binary log events. This allows database changes to be captured and pushed into external data stores, search engines, or caches to maintain consistency. The library includes tools for memory-efficient large dataset processing, utilizing query res
go-mysql is a Go toolkit that captures MySQL row-level changes in real time by streaming binary log events, making it a focused CDC solution for MySQL—though it only supports one database and lacks built-in schema-evolution or exactly-once delivery.
RethinkDB is a distributed, document-oriented database designed to store and manage JSON-formatted data across scalable clusters. It utilizes a custom log-structured storage engine with B-Tree indexing to ensure high-performance disk I/O and data persistence. The system maintains high availability through automatic sharding and replication, employing a primary-replica voting consensus mechanism to handle node failures and ensure consistent cluster operations. A defining characteristic of the platform is its reactive changefeed engine, which allows applications to subscribe to live data update
RethinkDB has a built-in reactive changefeed engine that streams row-level insert/update/delete events in real time, so it is a genuine CDC tool for its own database, but it cannot capture changes from other databases, which limits its fit for multi-database replication needs.
Benthos is a stream processing engine and data integration pipeline used for routing, transforming, and connecting data streams between diverse sources and sinks. It functions as event routing middleware and a change data capture tool, streaming real-time database modifications as discrete events for downstream processing. The system utilizes a declarative pipeline configuration, where data flow and processing logic are defined in a single static file. It features a specialized domain-specific language for mapping, filtering, and enriching data payloads, allowing for complex transformations w
Benthos is a stream processing engine that explicitly positions itself as a change data capture tool, capturing row-level database modifications in real time and routing them to diverse sinks, which matches the core requirement; it supports real-time streaming and multiple sources/sinks but may not include built-in schema evolution handling or exactly-once delivery out of the box.
Benthos is a declarative stream processor and data integration pipeline used to route, transform, and filter information between disparate services. It functions as an at-least-once message broker and change data capture engine, using a transaction model to guarantee message delivery despite system crashes or server faults. The system is defined by an observability-first approach, featuring built-in HTTP health probes, performance metrics export, and distributed request flow tracing. It utilizes a plugin architecture that allows the core engine to be extended with custom binaries for new inpu
Benthos is a declarative stream processor that explicitly functions as a change data capture engine, providing real-time streaming, at-least-once delivery, and plugin-based support for multiple database inputs and outputs, which directly aligns with the need for capturing row-level database changes for replication or event streaming.
go-mysql is a toolkit for the Go programming language designed for implementing MySQL protocol handlers, binary log replication systems, mock servers, and schema parsing utilities. It provides the necessary libraries to interact with MySQL servers through native network protocols and binary log streams. The project enables the creation of custom database proxies or mock servers by parsing and decoding low-level network packets. It also includes a replication tool for streaming and processing binary logs to synchronize data across different storage systems, alongside a schema parser for extrac
go-mysql is a Go library for working with MySQL binary logs and replication, providing the building blocks for change data capture rather than a ready-to-use CDC tool, and it only supports MySQL.
Airbyte is a data integration platform designed to synchronize information between diverse applications, databases, and data warehouses. It functions as an extract, transform, and load orchestrator that manages automated data movement workflows across cloud, on-premise, and hybrid environments. The platform provides a standardized interface for connectors, enabling the movement of structured and unstructured data while maintaining stateful checkpoints for reliable incremental syncing. The platform distinguishes itself through a containerized architecture that isolates connectors to prevent de
Airbyte is a data integration platform that includes change data capture as one of its sync mechanisms, but its primary identity is an ELT orchestrator rather than a dedicated real-time log-based CDC tool focused solely on row-level database change streaming.
Storm is a distributed stream processing framework and fault-tolerant compute engine designed for executing real-time continuous computations across a cluster of machines. It functions as a stateful stream processor and cluster topology manager, enabling the deployment and monitoring of distributed data flow configurations. The system ensures exactly-once semantics by utilizing transactional state management to guarantee that every message in a data stream is processed exactly one time. It further operates as a distributed RPC system, allowing for the integration of non-native languages throu
Apache Storm is a distributed stream processing framework rather than a change data capture tool—it lacks native log-based capture of database row changes, which is the core feature you need.
gh-ost is a triggerless online schema migration tool for MySQL. It functions as a replication client and table management utility that synchronizes data from a source table to a shadow table using binary logs, allowing for table structure modifications without locking original tables or causing downtime. The tool distinguishes itself by using binary-log-based replication instead of triggers to stream row-based events to a shadow table. It implements load-aware throttling and dynamic performance tuning to adjust migration speed based on server load and replication lag. Users can monitor and ad
gh-ost uses binary logs to capture row-level changes in MySQL, but it is a schema migration tool, not a general-purpose CDC tool for real-time streaming or replication to message queues.
This project provides an integrated backend platform built around a relational database. It automatically generates REST and GraphQL APIs from database schemas, allowing for direct data interaction through standard requests and client libraries. The platform includes a comprehensive authentication system that manages user identity, session handling, and fine-grained access control through database-native row-level security policies. Beyond core data management, the platform offers specialized services for object storage, vector data processing for semantic search, and real-time communication
Supabase includes a real-time streaming service built on PostgreSQL logical replication that can capture row-level changes, but it is primarily a backend platform rather than a dedicated CDC tool, and it only supports Postgres without configurable output to message queues or explicit fault-tolerance guarantees.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| alibaba/canal | 29.7K | Java | Apache-2.0 | |
| debezium/debezium | 12.4K | Java | apache-2.0 | |
| apache/flink-cdc | 6.4K | Java | Apache-2.0 | |
| go-mysql-org/go-mysql | 5K | Go | MIT | |
| rethinkdb/rethinkdb | 27K | C++ | NOASSERTION | |
| benthosdev/benthos | 8.7K | Go | — | |
| jeffail/benthos | 8.7K | Go | — | |
| siddontang/go-mysql | 5K | Go | MIT | |
| airbytehq/airbyte | 21.5K | Python | NOASSERTION | |
| nathanmarz/storm | 8.8K | Java | Apache-2.0 |