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.