Gaea vs TiCDC
Gaea
github.comTiCDC
docs.pingcap.comSide by side
| Figure | Gaea | TiCDC |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| macOS | — | Yes |
| Linux | — | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Database Proxy Software | 7.2 (#25) | 8.1 (#6) |
| Deployment | The quick start says Gaea is written in Go and can be compiled into gaea and gaea-cc executables for local use. | TiCDC can be deployed with a new TiDB cluster or added to an existing cluster using TiUP. |
| Intended users | The README says Gaea is used across mobile, automotive, ecosystem-chain, finance, and internet businesses. | Documented use cases include disaster recovery, real-time data feeds for monitoring, caching, indexing and analysis, and replication between heterogeneous databases. |
| Purpose | It supports database and table sharding, SQL routing, and read/write separation. | TiCDC replicates incremental data from TiDB by capturing TiKV change logs, sorting the changes, and exporting row-based data to downstream systems. |
Plans
In their own words
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.