From 16c121affd99a13f4d7525f46000a85dd2af1b2a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 7 Aug 2026 09:18:06 +0000 Subject: [PATCH 01/10] Initial plan From e959428c646113d441e8050e01bfdb48f77630ee Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 7 Aug 2026 09:22:24 +0000 Subject: [PATCH 02/10] Fix TiCDC Debezium architecture reference Co-authored-by: lilin90 <30922556+lilin90@users.noreply.github.com> --- ticdc/ticdc-debezium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index 05a580652e11b..5e9f06ac6a7ae 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -5,7 +5,7 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. # TiCDC Debezium Protocol -[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. Starting from v9.0.0, TiCDC supports DDL events and WATERMARK events. +[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. In the [TiCDC new architecture](/ticdc/ticdc-architecture.md), TiCDC supports DDL events and WATERMARK events. ## Use the Debezium message format From 641424131cc7557897541e6431a1d55820de71bd Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 7 Aug 2026 17:32:44 +0800 Subject: [PATCH 03/10] Apply suggestions from code review --- ticdc/ticdc-debezium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index 5e9f06ac6a7ae..e7c15885d8f41 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -5,7 +5,7 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. # TiCDC Debezium Protocol -[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. In the [TiCDC new architecture](/ticdc/ticdc-architecture.md), TiCDC supports DDL events and WATERMARK events. +[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. Starting from [TiCDC v8.5.4-release.1](https://github.com/pingcap/ticdc/releases/tag/v8.5.4-release.1) ([TiCDC new architecture](/ticdc/ticdc-architecture.md)) and v9.0.0, TiCDC supports DDL events and WATERMARK events. ## Use the Debezium message format From 41b0583a11096adaf71684795e7d4d48271a91a1 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 15:28:18 +0800 Subject: [PATCH 04/10] Update ticdc-debezium.md --- ticdc/ticdc-debezium.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index e7c15885d8f41..c3a79788bdbde 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -11,6 +11,9 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. When you use Kafka as the downstream sink, specify the `protocol` field as `debezium` in `sink-uri` configuration. Then TiCDC encapsulates the Debezium messages based on the events and sends TiDB data change events to the downstream. + +
+ The Debezium protocol supports the following types of events: - DDL event: represents a DDL change record. After the upstream DDL statement is successfully executed, the DDL event is sent to every Message Queue (MQ) partition. @@ -19,6 +22,14 @@ The Debezium protocol supports the following types of events: - WATERMARK event: represents a special point in time. It indicates that the events received before this point are complete. The WATERMARK event applies only to the TiDB extension field and takes effect when you set [`enable-tidb-extension`](/ticdc/ticdc-sink-to-kafka.md#configure-sink-uri-for-kafka) to `true` in `sink-uri`. +
+
+ +The Debezium protocol only supports Row Changed events and directly ignores DDL events and WATERMARK events. A Row changed event represents a data change in a row. When a row changes, the Row Changed event is sent, including relevant information about the row both before and after the change. A WATERMARK event marks the replication progress of a table, indicating that all events earlier than the watermark have been sent to the downstream. + +
+
+ The configuration example for using the Debezium message format is as follows: ```shell From ff723f1bcf7a5ee3cb8a4571d41428e5431eab90 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 15:28:43 +0800 Subject: [PATCH 05/10] Update ticdc-debezium.md --- ticdc/ticdc-debezium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index c3a79788bdbde..d97e5d580d4dc 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -5,7 +5,7 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. # TiCDC Debezium Protocol -[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. Starting from [TiCDC v8.5.4-release.1](https://github.com/pingcap/ticdc/releases/tag/v8.5.4-release.1) ([TiCDC new architecture](/ticdc/ticdc-architecture.md)) and v9.0.0, TiCDC supports DDL events and WATERMARK events. +[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. Starting from [TiCDC v8.5.4-release.1](https://github.com/pingcap/ticdc/releases/tag/v8.5.4-release.1) ([new TiCDC architecture](/ticdc/ticdc-architecture.md)) and v9.0.0, TiCDC supports DDL events and WATERMARK events. ## Use the Debezium message format From 763885d390794af59336e1fa2daab8d962e32123 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 15:56:59 +0800 Subject: [PATCH 06/10] Update ticdc-debezium.md --- ticdc/ticdc-debezium.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index d97e5d580d4dc..a0bc746f55a0a 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -14,6 +14,8 @@ When you use Kafka as the downstream sink, specify the `protocol` field as `debe
+To use the new TiCDC architecture, set the TiCDC configuration item [`newarch`](/ticdc/ticdc-server-config#newarch-new-in-v854-release1) to `true`. + The Debezium protocol supports the following types of events: - DDL event: represents a DDL change record. After the upstream DDL statement is successfully executed, the DDL event is sent to every Message Queue (MQ) partition. @@ -44,7 +46,11 @@ In addition, the original Debezium format does not include important fields such This section describes the message formats of DDL events, DML events and WATERMARK events. -### DDL event +### DDL event (new TiCDC architecture) + +> **Note:** +> +> The DDL event is supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), DDL events are ignored. TiCDC encodes a DDL event into a Kafka message, with both the key and value encoded in the Debezium format. @@ -591,7 +597,11 @@ The key fields of the preceding JSON data are explained as follows: | `schema.optional` | Boolean | Indicates whether the field is optional. When it is `true`, the field is optional. | | `schema.type` | String | The data type of the field. | -### WATERMARK event +### WATERMARK event (new TiCDC architecture) + +> **Note:** +> +> The WATERMARK event is supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), WATERMARK events are ignored. TiCDC encodes a WATERMARK event into a Kafka message, with both the key and value encoded in the Debezium format. From 2600b094c2eabe80cf58c3b42034ebe5ad3bd093 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 16:01:34 +0800 Subject: [PATCH 07/10] Update wording --- ticdc/ticdc-debezium.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index a0bc746f55a0a..a46481520af6d 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -50,7 +50,7 @@ This section describes the message formats of DDL events, DML events and WATERMA > **Note:** > -> The DDL event is supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), DDL events are ignored. +> DDL events are supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), DDL events are ignored. TiCDC encodes a DDL event into a Kafka message, with both the key and value encoded in the Debezium format. @@ -601,7 +601,7 @@ The key fields of the preceding JSON data are explained as follows: > **Note:** > -> The WATERMARK event is supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), WATERMARK events are ignored. +> WATERMARK events are supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), WATERMARK events are ignored. TiCDC encodes a WATERMARK event into a Kafka message, with both the key and value encoded in the Debezium format. From 3753775e4ad66e70b7748bcb9fa60befeb6c2b89 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 16:07:40 +0800 Subject: [PATCH 08/10] Update anchor link --- ticdc/ticdc-debezium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index a46481520af6d..fb8fc5fbf11ec 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -14,7 +14,7 @@ When you use Kafka as the downstream sink, specify the `protocol` field as `debe
-To use the new TiCDC architecture, set the TiCDC configuration item [`newarch`](/ticdc/ticdc-server-config#newarch-new-in-v854-release1) to `true`. +To use the new TiCDC architecture, set the TiCDC configuration item [`newarch`](/ticdc/ticdc-server-config.md#newarch-new-in-v854-release1) to `true`. The Debezium protocol supports the following types of events: From 2b2fb2183032aa26911fcaefd6eed0ba8327f733 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Thu, 13 Aug 2026 18:27:47 +0800 Subject: [PATCH 09/10] Update ticdc-debezium.md --- ticdc/ticdc-debezium.md | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index fb8fc5fbf11ec..6ee428e8dc581 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -11,11 +11,6 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. When you use Kafka as the downstream sink, specify the `protocol` field as `debezium` in `sink-uri` configuration. Then TiCDC encapsulates the Debezium messages based on the events and sends TiDB data change events to the downstream. - -
- -To use the new TiCDC architecture, set the TiCDC configuration item [`newarch`](/ticdc/ticdc-server-config.md#newarch-new-in-v854-release1) to `true`. - The Debezium protocol supports the following types of events: - DDL event: represents a DDL change record. After the upstream DDL statement is successfully executed, the DDL event is sent to every Message Queue (MQ) partition. @@ -24,14 +19,6 @@ The Debezium protocol supports the following types of events: - WATERMARK event: represents a special point in time. It indicates that the events received before this point are complete. The WATERMARK event applies only to the TiDB extension field and takes effect when you set [`enable-tidb-extension`](/ticdc/ticdc-sink-to-kafka.md#configure-sink-uri-for-kafka) to `true` in `sink-uri`. -
-
- -The Debezium protocol only supports Row Changed events and directly ignores DDL events and WATERMARK events. A Row changed event represents a data change in a row. When a row changes, the Row Changed event is sent, including relevant information about the row both before and after the change. A WATERMARK event marks the replication progress of a table, indicating that all events earlier than the watermark have been sent to the downstream. - -
-
- The configuration example for using the Debezium message format is as follows: ```shell @@ -46,11 +33,7 @@ In addition, the original Debezium format does not include important fields such This section describes the message formats of DDL events, DML events and WATERMARK events. -### DDL event (new TiCDC architecture) - -> **Note:** -> -> DDL events are supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), DDL events are ignored. +### DDL event TiCDC encodes a DDL event into a Kafka message, with both the key and value encoded in the Debezium format. @@ -597,11 +580,7 @@ The key fields of the preceding JSON data are explained as follows: | `schema.optional` | Boolean | Indicates whether the field is optional. When it is `true`, the field is optional. | | `schema.type` | String | The data type of the field. | -### WATERMARK event (new TiCDC architecture) - -> **Note:** -> -> WATERMARK events are supported only in the [new TiCDC architecture](/ticdc/ticdc-architecture.md). In the [classic TiCDC architecture](/ticdc/ticdc-classic-architecture.md), WATERMARK events are ignored. +### WATERMARK event TiCDC encodes a WATERMARK event into a Kafka message, with both the key and value encoded in the Debezium format. From c56ccbc02bfafcc42aca02d7beddd0c6f93a7a9c Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 14 Aug 2026 16:33:54 +0800 Subject: [PATCH 10/10] Apply suggestions from code review --- ticdc/ticdc-debezium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-debezium.md b/ticdc/ticdc-debezium.md index 6ee428e8dc581..14e06356f0050 100644 --- a/ticdc/ticdc-debezium.md +++ b/ticdc/ticdc-debezium.md @@ -5,7 +5,7 @@ summary: Learn the concept of the TiCDC Debezium Protocol and how to use it. # TiCDC Debezium Protocol -[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports sending TiDB changes to Kafka using a Debezium style output format, simplifying migration from MySQL databases for users who had previously been using Debezium's MySQL integration. Starting from [TiCDC v8.5.4-release.1](https://github.com/pingcap/ticdc/releases/tag/v8.5.4-release.1) ([new TiCDC architecture](/ticdc/ticdc-architecture.md)) and v9.0.0, TiCDC supports DDL events and WATERMARK events. +[Debezium](https://debezium.io/) is a tool for capturing database changes. It converts each captured database change into a message called an "event" and sends these events to Kafka. Starting from v8.0.0, TiCDC supports directly sending TiDB row data changes (DML events) to Kafka in the Debezium format, simplifying the migration from MySQL databases for users who previously used the Debezium MySQL integration. Starting from [TiCDC v8.5.4-release.1](https://github.com/pingcap/ticdc/releases/tag/v8.5.4-release.1) ([new TiCDC architecture](/ticdc/ticdc-architecture.md)) and v9.0.0, TiCDC also supports sending DDL and WATERMARK events in the Debezium format. ## Use the Debezium message format