Canal
What it is
Canal is a self-hosted, free project for subscribing to and processing MySQL database changes incrementally. It acts as a replica, requesting binary log data from a master database 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 support for MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x. Change records can be sent to Kafka and RocketMQ; RabbitMQ and Pulsar also appear as server modes in the quick start. Clients use a Protocol Buffers 3.0 protocol, with Java, C#, Go, and Python options described. Canal Admin provides a web interface for configuration, tasks, and logs, and native Prometheus monitoring is listed. Docker images and a Docker QuickStart are available, though the default setup permits just one Canal instance per Docker instance. The repository lists an Apache-2.0 license. Release notes for v1.1.8 include support adaptations for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0, plus a ClickHouse adapter and SSL/TLS options.
For and against
For
- Supports listed MySQL versions through 8.0.x.
- Delivers changes to Kafka and RocketMQ.
- Admin web UI manages configuration, tasks, and logs.
- Native Prometheus monitoring is listed.
- Docker images and quick start are provided.
Against
- Default Docker setup runs one Canal instance per instance.
- Requires a self-hosted deployment.
The verdict
Canal offers a log-based way to route MySQL changes into downstream systems, with administration and monitoring tools included. The default Docker setup is limited to one Canal instance per Docker instance.
Who it suits
Canal suits teams that need to capture MySQL changes for downstream databases, caches, queues, or business logic. It is intended for self-hosted deployments and has clients described for Java, C#, Go, and Python.
Plans and prices
Canal
Apache-2.0 open-source project
Read 30 Sep 2026 · github.com
On the record
- Additional adapters
- The v1.1.8 release notes announce a ClickHouse adapter.github.com · read 30 Sep 2026
- Administration
- Canal Admin provides web based dynamic management, including online configuration, task, and log operations.github.com · read 30 Sep 2026
- Client languages
- The project describes a Protocol Buffers 3.0 client-server protocol and lists Java, C#, Go, and Python clients.github.com · read 29 Sep 2026
- Client protocol
- Canal uses a client server design with Protocol Buffers 3.0, and clients can be implemented in different languages.github.com · read 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.github.com · read 29 Sep 2026
- Deployment
- The README says Canal provides native Docker image support.github.com · read 30 Sep 2026
- Deployment limit
- The Docker QuickStart says one Docker instance can run only one Canal instance with the default setup.github.com · read 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.github.com · read 30 Sep 2026
- License
- The repository identifies its license as Apache-2.0.github.com · read 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.github.com · read 29 Sep 2026
- Message systems
- Canal supports native delivery to Kafka and RocketMQ, and the README also describes publishing change records to message queues.github.com · read 30 Sep 2026
- Monitoring
- The README says Canal has native Prometheus monitoring support.github.com · read 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.github.com · read 30 Sep 2026
- Purpose
- Canal parses MySQL database incremental logs and provides incremental data subscription and consumption.github.com · read 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.github.com · read 30 Sep 2026
- Security
- The v1.1.8 release notes list SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support.github.com · read 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.github.com · read 30 Sep 2026
- Support
- The project asks users to report bugs and feature requests through GitHub issues.github.com · read 29 Sep 2026
The review
Overview
Canal is a free, self-hosted change-data-capture tool for teams that need MySQL updates to flow into other systems. Its log-based approach and several delivery options make it a practical fit for database mirroring, cache refresh, or downstream processing; it is less compelling if you need a managed service rather than operating the deployment yourself.
It simulates a MySQL replica, requests binlog data from the master, then parses the events for incremental subscription and consumption. The project is Apache-2.0 licensed, with a single free plan at no cost.
Key features
Capture and compatibility
Canal captures changes from MySQL binary logs, avoiding reliance on repeated full-table reads for incremental updates. The README lists source support for MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x. Release notes for v1.1.8 also describe adaptations for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0, making it a candidate for several compatible database environments.
Schema evolution is supported. That can help maintain downstream change processing as schemas change, though it does not remove the need to assess the specifics of a given source and destination setup.
Destinations and clients
Canal can deliver change records natively to Kafka and RocketMQ; its quick start also lists RabbitMQ and Pulsar server modes. A ClickHouse adapter was announced in v1.1.8. This range suits teams building event-driven pipelines, but the listed destinations do not establish support for every queue or warehouse.
The client-server protocol uses Protocol Buffers 3.0, with project clients for Java, C#, Go, and Python. That gives teams in those languages a defined starting point, while other languages would need their own client implementation.
Administration, security, and deployment
Canal Admin offers a web UI for dynamic management of configuration, tasks, and logs. Native Prometheus monitoring provides an integration point for operational visibility. Docker images and a quick-start deployment lower the barrier to trying it, but the default Docker setup permits only one Canal instance per Docker instance, a constraint to plan around when scaling that deployment pattern.
Version 1.1.8 notes SSL/TLS connections to source MySQL and SSL authentication for RabbitMQ. Vulnerability reports go to Alibaba Security Response Center, and bug reports and feature requests are directed to GitHub issues.
Pricing
Canal has one plan, Canal, at no cost under the Apache-2.0 open-source project. There are no paid tiers described, so the project itself has no plan price beyond free; self-hosting means teams should account for the work of running and maintaining their own deployment.
Platforms
Canal is self-hosted and lists API, Linux, and macOS among its platforms. Its supported-platform information also names Kubernetes, Linux, ACK Distro, AECP, and SOFAStack. Docker images are available, with the default Docker setup limited to one Canal instance per Docker instance.
Who it's for
Canal is best suited to engineering teams that need MySQL change events for mirroring, backups, index maintenance, cache refresh, or business logic and can operate self-hosted infrastructure. Its queue integrations and language clients are useful when downstream systems already use those protocols or ecosystems. Teams seeking a fully managed capture service, or a deployment model without the default Docker instance constraint, should weigh other options.
Pros and cons
- Pros: Free Apache-2.0 software makes it accessible to self-hosting teams without a software plan charge.
- Pros: MySQL binlog capture, message-queue delivery, and clients in four listed languages support multiple downstream integration patterns.
- Pros: Canal Admin and Prometheus monitoring provide concrete management and monitoring capabilities.
- Cons: Self-hosting places deployment and operations with the adopting team.
- Cons: The default Docker setup runs only one Canal instance per Docker instance, which limits that deployment pattern.
Alternatives
Chronon is another free, self-hosted API option if you want an open-source alternative; no usage limits are stated for its free plan. Feast is a free, open-source feature store for teams looking for that category rather than MySQL change capture. Hopsworks Feature Store may suit teams that want a free entry tier with one project, Feature Store and Model Registry, and community support, or a custom-priced Enterprise tier.
OpenMLDB is a free open-source machine-learning database, with standalone and cluster versions; choose it when that database role is the priority. Feathr is another free option for readers comparing tools in the feature-store space. Chalk is a paid API, self-hosted, and web option. Snowflake Feature Store offers consumption-based Standard and Enterprise plans for teams seeking a feature-store offering with Snowpark, data sharing, optimized storage, and Time Travel in Standard.
Amazon SageMaker Autopilot is a paid API and web alternative with a free trial and pay-as-you-go pricing; choose it when that offering, rather than change-data capture, fits the task. For category browsing, see Change Data Capture Software, Feature Store Software, or Container Networking Software.
Verdict
Choose Canal if you need free, self-hosted MySQL binlog capture with queue delivery, administration, and monitoring, and your team can own its operations. Look elsewhere if you need a managed deployment or the default one-instance-per-Docker constraint does not fit your scaling plan.