Canal
Canal parses MySQL binary logs so applications can subscribe to and consume database changes incrementally.
What Canal is
Canal parses MySQL binary logs so applications can subscribe to and consume database changes incrementally. It acts like a MySQL replica: it requests binlog data from a master and parses the resulting events. Listed uses include database mirroring and real-time backup, index maintenance, cache refresh, and business-logic processing. Supported source versions listed in the README are MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x. Canal can deliver change records to Kafka and RocketMQ, with RabbitMQ and Pulsar also listed as server modes in the quick start. Its Protocol Buffers 3.0 client-server design has clients for Java, C#, Go, and Python. Canal Admin offers a web interface for managing configuration, tasks, and logs, and the project lists native Prometheus monitoring. Docker images and a Docker QuickStart are provided; the default Docker setup runs one Canal instance per Docker instance. Canal is self-hosted and free under the Apache-2.0 license.
Good
- Incremental change capture from MySQL binary logs
- Supports listed MySQL versions through 8.0.x
- Delivers change records to Kafka and RocketMQ
- Admin web UI manages configuration, tasks, and logs
- Native Prometheus monitoring support
Watch out
- Default Docker setup runs one Canal instance
- Self-hosted deployment requires managing the software
Who it suits
Canal suits teams that need to consume MySQL changes for mirroring, backup, cache refresh, indexing, or business processing. It is aimed at organizations able to run and manage self-hosted software.
Verdict
Canal provides a free, self-hosted route for consuming MySQL changes and forwarding them to supported message systems. Check the listed source-version support and default Docker instance limit against your deployment needs.
Plans and prices
From Canal's own pricing page, checked 30 Sep 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Canal | Free | Apache-2.0 open-source project |
The facts
Each one read from Canal's own pages, with the date it was checked.
What it does
- Additional adapters
- The v1.1.8 release notes announce a ClickHouse adapter.checked 30 Sep 2026
- Administration
- Canal Admin provides web based dynamic management, including online configuration, task, and log operations.checked 30 Sep 2026
- Client languages
- The project describes a Protocol Buffers 3.0 client-server protocol and lists Java, C#, Go, and Python clients.checked 29 Sep 2026
- Client protocol
- Canal uses a client server design with Protocol Buffers 3.0, and clients can be implemented in different languages.checked 30 Sep 2026
- Database support
- The README lists MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported source versions.checked 29 Sep 2026
- Deployment
- The README says Canal provides native Docker image support.checked 30 Sep 2026
- Deployment limit
- The Docker QuickStart says one Docker instance can run only one Canal instance with the default setup.checked 29 Sep 2026
- How it works
- Canal emulates a MySQL slave, requests the dump protocol from a MySQL master, and parses the binary log stream it receives.checked 30 Sep 2026
- License
- The repository identifies its license as Apache-2.0.checked 30 Sep 2026
- Message queues
- Canal can send change records to Kafka and RocketMQ; its quick start also lists RabbitMQ and Pulsar as server modes.checked 29 Sep 2026
- Message systems
- Canal supports native delivery to Kafka and RocketMQ, and the README also describes publishing change records to message queues.checked 30 Sep 2026
- Monitoring
- The README says Canal has native Prometheus monitoring support.checked 30 Sep 2026
- MySQL versions
- The README lists source MySQL versions 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported.checked 30 Sep 2026
- Purpose
- Canal parses MySQL database incremental logs and provides incremental data subscription and consumption.checked 30 Sep 2026
- Recent compatibility
- The v1.1.8 release notes list adaptation for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0.checked 30 Sep 2026
- Security
- The v1.1.8 release notes list SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support.checked 29 Sep 2026
- Security reporting
- The security policy directs vulnerability reports to Alibaba Security Response Center and says reporters will be kept informed while fixes are pursued.checked 30 Sep 2026
- Support
- The project asks users to report bugs and feature requests through GitHub issues.checked 29 Sep 2026
- Transport security
- The v1.1.8 release notes list SSL/TLS connections to source MySQL databases and RabbitMQ SSL authentication support.checked 30 Sep 2026
- Use cases
- Listed uses include database mirroring, real-time database backup, index building and maintenance, business cache refresh, and incremental data processing.checked 30 Sep 2026
- Vulnerability reporting
- The security policy directs vulnerability reports to Alibaba Security Response Center.checked 29 Sep 2026
The full review of Canal
Overview
Canal is a self-hosted, open-source tool for capturing MySQL changes. It reads the database’s binary log and makes the resulting events available for incremental subscription and consumption. To do this, Canal acts like a MySQL replica: it requests binlog data from the master and parses the events.
The project identifies database mirroring and real-time backup, index maintenance, cache refresh, and business-logic processing as possible uses. Canal is licensed under Apache-2.0. It is listed for API, Linux, macOS, and self-hosted environments.
Key features
Change capture and database compatibility
The README lists MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported source versions. Release notes for v1.1.8 also list adaptations for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0. Check the compatibility details against the database you intend to capture before planning a deployment.
Destinations and client protocol
Canal can send change records to Kafka and RocketMQ. Its quick start also lists RabbitMQ and Pulsar as server modes, and the v1.1.8 notes announce a ClickHouse adapter. The project describes a client-server design using Protocol Buffers 3.0, with clients listed for Java, C#, Go, and Python.
Administration, monitoring, and deployment
Canal Admin provides a web interface for dynamically managing configuration, tasks, and logs. Native Prometheus monitoring is also listed. For deployment, the project provides Docker images and a Docker QuickStart; with its default setup, one Docker instance can run only one Canal instance.
Security and project support
The v1.1.8 release notes list SSL/TLS connections to source MySQL databases and SSL authentication for RabbitMQ. The security policy directs vulnerability reports to Alibaba Security Response Center and says reporters will be kept informed as fixes are pursued. Bugs and feature requests can be reported through GitHub issues.
Pricing
Canal is free. The listed plan price is free, and the project is open source under the Apache-2.0 license. It is self-hosted, so the stated price describes the software plan rather than a hosted deployment.
Platforms
The listed platforms include API, Linux, macOS, and self-hosted deployment. The supported-platform list also names Kubernetes, Linux, ACK Distro, AECP, and SOFAStack. Docker images and the repository’s Docker QuickStart offer another deployment route, subject to the one-Canal-instance-per-Docker-instance limit in the default setup.
Who it's for
Canal is aimed at teams that need to consume MySQL changes incrementally for mirroring, backup, index maintenance, cache refresh, or business-logic processing. Its message-queue integrations and language-listed clients may suit systems that need to pass captured changes to other services. Teams should account for the source database’s compatibility and the self-managed deployment model.
Pros and cons
- Pros: Supports a range of listed MySQL source versions, with additional adaptations noted for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0.
- Pros: Offers Kafka and RocketMQ delivery, additional listed server modes, several client-language options, web-based administration, and Prometheus monitoring.
- Pros: Free and licensed under Apache-2.0.
- Cons: Requires self-hosting rather than offering a listed hosted plan.
- Cons: The default Docker setup runs only one Canal instance per Docker instance.
- Cons: Source database compatibility needs careful checking, particularly across the separate supported-version and release-adaptation lists.
Alternatives
For other change data capture options, see our Change Data Capture Software list. This directory also covers Container Networking Software and Feature Store Software, though those categories address different needs than Canal’s MySQL change capture.
Verdict
Canal’s core role is clear: it reads MySQL binlogs and makes parsed changes available for downstream use. Its listed integrations, client options, administration interface, and monitoring support give teams several ways to connect and operate that workflow. The key trade-offs are the need to manage a self-hosted deployment and to verify database-version compatibility for the intended source.
Getting started
- Open the Canal repository at https://github.com/alibaba/canal.
- Review the repository's Docker QuickStart and Docker images.
- Deploy Canal in a self-hosted environment.
- Configure a supported MySQL source and choose a listed message system or client.
Limits worth knowing
The Docker QuickStart's default setup allows one Canal instance per Docker instance.
Questions
Does Canal cost anything?
Canal is listed as a free project under the Apache-2.0 license.
How does Canal capture changes?
It simulates a MySQL replica, requests binlog data from the master, and parses the events.
Which MySQL versions are listed as supported sources?
The README lists MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x.
Which message systems can receive change records?
Kafka and RocketMQ are listed for delivery. RabbitMQ and Pulsar are also listed as server modes.
Which client languages are described?
The project lists Java, C#, Go, and Python clients using a Protocol Buffers 3.0 client-server protocol.
How is Canal deployed and administered?
Canal is self-hosted and provides Docker images and a Docker QuickStart. Canal Admin offers a web interface for configuration, tasks, and logs.
Alternatives to Canal
- 1
Estuary
Free planWebAPILinuxmacOS7.9$0.50 usage-based - 2
TiCDC
Free planOpen sourceAPILinuxmacOSSelf-hosted7.2Free plan - 3

Google Cloud Datastream
Free planWebAPI6.8From $0.40 a month - 4

PeerDB
Free planWebAPISelf-hosted6.8From $250 a month - 5
Debezium
Free planAPILinuxSelf-hostedWindows6.6Free plan - 6

Decodable
Free planWebAPISelf-hosted6.6From $0.10 a year
