Canal vs TiCDC
Canal
github.comTiCDC
docs.pingcap.comSide by side
| Figure | Canal | TiCDC |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Change Data Capture Software | 8.7 (#3) | 8.1 (#8) |
| Deployment | The README says Canal provides native Docker image support. | TiCDC can be deployed with a new TiDB cluster or added to an existing cluster using TiUP. |
| Purpose | Canal parses MySQL database incremental logs and provides incremental data subscription and consumption. | TiCDC replicates incremental data from TiDB by capturing TiKV change logs, sorting the changes, and exporting row-based data to downstream systems. |
| Security | The v1.1.8 release notes list SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support. | The deployment guide documents enabling TLS between TiDB components, including TiCDC. |
| Support | The project asks users to report bugs and feature requests through GitHub issues. | PingCAP directs paid-plan users to support tickets and all users to community Slack support. |
Plans
In their own words
Canal
Canal is a free, self-hosted project that parses MySQL binary logs so applications can subscribe to and consume database changes incrementally. It acts like a MySQL replica, requesting binlog data from a master and parsing the events. Listed uses include database mirroring and real-time backup, index maintenance, cache refresh, and business-logic processing. The README lists source versions MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x. Canal can send change records to Kafka and RocketMQ; the quick start also lists RabbitMQ and Pulsar server modes. Its Protocol Buffers 3.0 client-server design has clients for Java, C#, Go, and Python. Canal Admin provides a web interface for managing configuration, tasks, and logs, and the project lists native Prometheus monitoring. Docker images and a Docker QuickStart are available, but the default setup runs only one Canal instance per Docker instance. The project is licensed under Apache-2.0.
TiCDC
TiCDC is a free, open-source, self-hosted tool for replicating incremental data changes from TiDB. It captures TiKV change logs, sorts the changes, and exports row-based data to systems including TiDB, MySQL-compatible databases, Kafka, Amazon S3, GCS, Azure Blob Storage, and NFS. Recommended Kafka formats include Canal-JSON, Avro, and Debezium. Filters can select databases, tables, DMLs, and DDLs, while the Open API can check task status, change task configuration, and create or delete tasks. TiCDC supports replication between TiDB clusters for disaster recovery, with second-level RPO and minute-level RTO, as well as bidirectional replication for multi-active deployments. It can be deployed with a new cluster or added to an existing one; production guidance recommends at least two instances. The system has no single point of failure and allows nodes to be added or removed dynamically. Delivery is at least once, so failures can lead to repeated statements or Kafka messages.