Maxwell's Daemon vs TiCDC
Maxwell's Daemon
maxwells-daemon.ioTiCDC
docs.pingcap.comSide by side
| Figure | Maxwell's Daemon | TiCDC |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Change Data Capture Software | 7.4 (#14) | 8.1 (#8) |
| Deployment | The quick start documents running Maxwell from the command line or Docker and provides a binary distribution and Homebrew installation command. | TiCDC can be deployed with a new TiDB cluster or added to an existing cluster using TiUP. |
| Filtering | Maxwell can filter by database, table, and column values, and supports JavaScript filters for custom row filtering and data changes. | Replication rules can filter databases, tables, DML events, and DDL events. |
| High availability | The documentation describes client-side high availability as experimental and alpha quality, and says at least three Maxwell nodes are needed for leader elections. | TiCDC has no single point of failure and supports dynamically adding or deleting TiCDC nodes. |
| What it does | Maxwell reads MySQL binlogs and writes database changes as JSON to Kafka, Kinesis, and other streaming platforms. | TiCDC captures TiKV change logs, orders them, and exports row-level incremental changes from TiDB to downstream systems. |
Plans
In their own words
Maxwell's Daemon
Maxwell's Daemon is a free, open-source, self-hosted Linux tool for moving MySQL changes into streaming systems. It reads MySQL binary logs and emits database changes as JSON for Kafka, Kinesis, SQS, SNS, NATS, Google Cloud Pub/Sub, BigQuery, RabbitMQ, Redis, and other destinations. Listed uses include ETL, database change auditing, cache building or expiration, search indexing, and communication between services. Filtering can select databases, tables, and column values, while JavaScript filters handle custom row filtering and data changes. When encryption is enabled, messages use AES/CBC/PKCS5PADDING with a user-provided key and base64-encoded values. Metrics can be exposed through logging, JMX, HTTP, or Datadog; HTTP endpoints cover metrics, Prometheus, health checks, ping, and diagnostics. Maxwell supports schema evolution and an initial snapshot. Deployment options include command line, Docker, binary distribution, and Homebrew. Requirements include JRE 11 or later, supported MySQL versions from 5.1 through 8, and Kafka 0.8.2 or later when Kafka is used.
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.