You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/01/14 16:35:19 UTC

[camel] branch main updated: CAMEL-17490: Upgrade to debezium 1.8

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 63366e9  CAMEL-17490: Upgrade to debezium 1.8
63366e9 is described below

commit 63366e9bc2272b5915d64da64deddee2e9660303
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jan 14 17:33:51 2022 +0100

    CAMEL-17490: Upgrade to debezium 1.8
---
 .../camel-debezium-common-component/pom.xml        |   8 ++
 .../camel/component/debezium/DebeziumConsumer.java |   4 +-
 .../DebeziumMongodbComponentConfigurer.java        |  12 +++
 .../DebeziumMongodbEndpointConfigurer.java         |  12 +++
 .../DebeziumMongodbEndpointUriFactory.java         |   4 +-
 ...goDbConnectorEmbeddedDebeziumConfiguration.java |  34 +++++++
 .../camel/component/debezium/debezium-mongodb.json |   8 +-
 .../debezium/DebeziumMySqlComponentConfigurer.java |  24 +++++
 .../debezium/DebeziumMySqlEndpointConfigurer.java  |  24 +++++
 .../debezium/DebeziumMySqlEndpointUriFactory.java  |  92 ++++++++++---------
 ...ySqlConnectorEmbeddedDebeziumConfiguration.java |  71 ++++++++++++++
 .../camel/component/debezium/debezium-mysql.json   |  12 ++-
 .../DebeziumPostgresComponentConfigurer.java       |  36 ++++++--
 .../DebeziumPostgresEndpointConfigurer.java        |  36 ++++++--
 .../DebeziumPostgresEndpointUriFactory.java        |   8 +-
 ...gresConnectorEmbeddedDebeziumConfiguration.java | 101 ++++++++++++++++----
 .../component/debezium/debezium-postgres.json      |  12 ++-
 .../DebeziumSqlserverComponentConfigurer.java      |  36 ++++++++
 .../DebeziumSqlserverEndpointConfigurer.java       |  36 ++++++++
 .../DebeziumSqlserverEndpointUriFactory.java       |   8 +-
 ...rverConnectorEmbeddedDebeziumConfiguration.java | 102 +++++++++++++++++++++
 .../component/debezium/debezium-sqlserver.json     |  16 +++-
 .../ROOT/pages/camel-3x-upgrade-guide-3_15.adoc    |   4 +
 parent/pom.xml                                     |   2 +-
 24 files changed, 615 insertions(+), 87 deletions(-)

diff --git a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
index 2f3e482..0e07754 100644
--- a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
+++ b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
@@ -36,6 +36,14 @@
     </properties>
 
     <dependencies>
+
+        <!-- kafka 3.x is required -->
+        <dependency>
+            <groupId>org.apache.kafka</groupId>
+            <artifactId>kafka-clients</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+
         <!-- test -->
         <dependency>
             <groupId>org.apache.camel</groupId>
diff --git a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
index 2ed84a8..71f06b7 100644
--- a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
+++ b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
@@ -57,7 +57,9 @@ public class DebeziumConsumer extends DefaultConsumer {
 
     @Override
     protected void doStop() throws Exception {
-        dbzEngine.close();
+        if (dbzEngine != null) {
+            dbzEngine.close();
+        }
 
         // shutdown the thread pool gracefully
         getEndpoint().getCamelContext().getExecutorServiceManager().shutdownGraceful(executorService);
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
index 5103b28..cce722b 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
@@ -34,6 +34,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "capturemode":
+        case "captureMode": getOrCreateConfiguration(target).setCaptureMode(property(camelContext, java.lang.String.class, value)); return true;
         case "collectionexcludelist":
         case "collectionExcludeList": getOrCreateConfiguration(target).setCollectionExcludeList(property(camelContext, java.lang.String.class, value)); return true;
         case "collectionincludelist":
@@ -144,6 +146,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -157,6 +161,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "autowiredEnabled": return boolean.class;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return boolean.class;
+        case "capturemode":
+        case "captureMode": return java.lang.String.class;
         case "collectionexcludelist":
         case "collectionExcludeList": return java.lang.String.class;
         case "collectionincludelist":
@@ -267,6 +273,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "sourceStructVersion": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -281,6 +289,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "autowiredEnabled": return target.isAutowiredEnabled();
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+        case "capturemode":
+        case "captureMode": return getOrCreateConfiguration(target).getCaptureMode();
         case "collectionexcludelist":
         case "collectionExcludeList": return getOrCreateConfiguration(target).getCollectionExcludeList();
         case "collectionincludelist":
@@ -391,6 +401,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
         case "sourceStructVersion": return getOrCreateConfiguration(target).getSourceStructVersion();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
index ad1af2b..72fd4ac 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
@@ -25,6 +25,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "additionalProperties": target.getConfiguration().setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "capturemode":
+        case "captureMode": target.getConfiguration().setCaptureMode(property(camelContext, java.lang.String.class, value)); return true;
         case "collectionexcludelist":
         case "collectionExcludeList": target.getConfiguration().setCollectionExcludeList(property(camelContext, java.lang.String.class, value)); return true;
         case "collectionincludelist":
@@ -138,6 +140,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "sourceStructVersion": target.getConfiguration().setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -149,6 +153,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "additionalProperties": return java.util.Map.class;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return boolean.class;
+        case "capturemode":
+        case "captureMode": return java.lang.String.class;
         case "collectionexcludelist":
         case "collectionExcludeList": return java.lang.String.class;
         case "collectionincludelist":
@@ -262,6 +268,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "sourceStructVersion": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -274,6 +282,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "additionalProperties": return target.getConfiguration().getAdditionalProperties();
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+        case "capturemode":
+        case "captureMode": return target.getConfiguration().getCaptureMode();
         case "collectionexcludelist":
         case "collectionExcludeList": return target.getConfiguration().getCollectionExcludeList();
         case "collectionincludelist":
@@ -387,6 +397,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
         case "sourceStructVersion": return target.getConfiguration().getSourceStructVersion();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return target.getConfiguration().getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
index 1ff05e2..a064a24 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(60);
+        Set<String> props = new HashSet<>(62);
         props.add("mongodbServerSelectionTimeoutMs");
         props.add("maxBatchSize");
         props.add("internalKeyConverter");
@@ -54,6 +54,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
         props.add("snapshotFetchSize");
         props.add("offsetStoragePartitions");
         props.add("databaseExcludeList");
+        props.add("captureMode");
         props.add("additionalProperties");
         props.add("offsetStorageReplicationFactor");
         props.add("exceptionHandler");
@@ -61,6 +62,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
         props.add("snapshotIncludeCollectionList");
         props.add("databaseHistoryFileFilename");
         props.add("cursorMaxAwaitTimeMs");
+        props.add("transactionTopic");
         props.add("offsetStorage");
         props.add("internalValueConverter");
         props.add("snapshotMaxThreads");
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
index 0e1c5db..4839bcf 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
@@ -69,6 +69,8 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
     private String collectionIncludeList;
     @UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
     private long retriableRestartConnectorWaitMs = 10000;
+    @UriParam(label = LABEL_NAME, defaultValue = "change_streams_update_full")
+    private String captureMode = "change_streams_update_full";
     @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
     private long snapshotDelayMs = 0;
     @UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -89,6 +91,8 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
     private int connectMaxAttempts = 16;
     @UriParam(label = LABEL_NAME, defaultValue = "0")
     private long maxQueueSizeInBytes = 0;
+    @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+    private String transactionTopic = "${database.server.name}.transaction";
     @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
     private int mongodbSocketTimeoutMs = 0;
     @UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -456,6 +460,21 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The method used to capture changes from MongoDB server. Options include:
+     * 'oplog' to capture changes from the oplog; 'change_streams' to capture
+     * changes via MongoDB Change Streams, update events do not contain full
+     * documents; 'change_streams_update_full' (the default) to capture changes
+     * via MongoDB Change Streams, update events contain full documents
+     */
+    public void setCaptureMode(String captureMode) {
+        this.captureMode = captureMode;
+    }
+
+    public String getCaptureMode() {
+        return captureMode;
+    }
+
+    /**
      * A delay period before a snapshot will begin, given in milliseconds.
      * Defaults to 0 ms.
      */
@@ -584,6 +603,19 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The name of the transaction metadata topic. The placeholder
+     * ${database.server.name} can be used for referring to the connector's
+     * logical name; defaults to ${database.server.name}.transaction.
+     */
+    public void setTransactionTopic(String transactionTopic) {
+        this.transactionTopic = transactionTopic;
+    }
+
+    public String getTransactionTopic() {
+        return transactionTopic;
+    }
+
+    /**
      * The socket timeout, given in milliseconds. Defaults to 0 ms.
      */
     public void setMongodbSocketTimeoutMs(int mongodbSocketTimeoutMs) {
@@ -707,6 +739,7 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
         addPropertyIfNotNull(configBuilder, "collection.include.list", collectionIncludeList);
         addPropertyIfNotNull(configBuilder, "retriable.restart.connector.wait.ms", retriableRestartConnectorWaitMs);
+        addPropertyIfNotNull(configBuilder, "capture.mode", captureMode);
         addPropertyIfNotNull(configBuilder, "snapshot.delay.ms", snapshotDelayMs);
         addPropertyIfNotNull(configBuilder, "provide.transaction.metadata", provideTransactionMetadata);
         addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
@@ -717,6 +750,7 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
         addPropertyIfNotNull(configBuilder, "connect.max.attempts", connectMaxAttempts);
         addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+        addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
         addPropertyIfNotNull(configBuilder, "mongodb.socket.timeout.ms", mongodbSocketTimeoutMs);
         addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
         addPropertyIfNotNull(configBuilder, "mongodb.name", mongodbName);
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json b/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
index 47aa6ea..dbe8461 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
@@ -36,6 +36,7 @@
     "offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offse [...]
     "offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored.  [...]
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "captureMode": { "kind": "property", "displayName": "Capture Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "change_streams_update_full", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The method used to cap [...]
     "collectionExcludeList": { "kind": "property", "displayName": "Collection Exclude List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions t [...]
     "collectionIncludeList": { "kind": "property", "displayName": "Collection Include List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions t [...]
     "connectBackoffInitialDelayMs": { "kind": "property", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay w [...]
@@ -80,7 +81,8 @@
     "snapshotMaxThreads": { "kind": "property", "displayName": "Snapshot Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of threads used to perform  [...]
     "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upo [...]
     "sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of th [...]
-    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be re [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be re [...]
+    "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the sam [...]
@@ -98,6 +100,7 @@
     "offsetStorageTopic": { "kind": "parameter", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. [...]
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "captureMode": { "kind": "parameter", "displayName": "Capture Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "change_streams_update_full", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The method used to ca [...]
     "collectionExcludeList": { "kind": "parameter", "displayName": "Collection Exclude List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions  [...]
     "collectionIncludeList": { "kind": "parameter", "displayName": "Collection Include List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions  [...]
     "connectBackoffInitialDelayMs": { "kind": "parameter", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay  [...]
@@ -142,6 +145,7 @@
     "snapshotMaxThreads": { "kind": "parameter", "displayName": "Snapshot Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of threads used to perform [...]
     "snapshotMode": { "kind": "parameter", "displayName": "Snapshot Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot up [...]
     "sourceStructVersion": { "kind": "parameter", "displayName": "Source Struct Version", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of t [...]
-    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be r [...]
+    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be r [...]
+    "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Th [...]
   }
 }
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
index bec0871..6e79d8d 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
@@ -124,6 +124,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "gtidSourceFilterDmlEvents": getOrCreateConfiguration(target).setGtidSourceFilterDmlEvents(property(camelContext, boolean.class, value)); return true;
         case "gtidsourceincludes":
         case "gtidSourceIncludes": getOrCreateConfiguration(target).setGtidSourceIncludes(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": getOrCreateConfiguration(target).setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
         case "heartbeattopicsprefix":
@@ -132,8 +134,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "includeQuery": getOrCreateConfiguration(target).setIncludeQuery(property(camelContext, boolean.class, value)); return true;
         case "includeschemachanges":
         case "includeSchemaChanges": getOrCreateConfiguration(target).setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": getOrCreateConfiguration(target).setInconsistentSchemaHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": getOrCreateConfiguration(target).setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": getOrCreateConfiguration(target).setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
         case "internalkeyconverter":
@@ -214,6 +220,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -317,6 +325,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "gtidSourceFilterDmlEvents": return boolean.class;
         case "gtidsourceincludes":
         case "gtidSourceIncludes": return java.lang.String.class;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return java.lang.String.class;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return int.class;
         case "heartbeattopicsprefix":
@@ -325,8 +335,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "includeQuery": return boolean.class;
         case "includeschemachanges":
         case "includeSchemaChanges": return boolean.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": return java.lang.String.class;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": return int.class;
         case "internalkeyconverter":
@@ -407,6 +421,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "timePrecisionMode": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -511,6 +527,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "gtidSourceFilterDmlEvents": return getOrCreateConfiguration(target).isGtidSourceFilterDmlEvents();
         case "gtidsourceincludes":
         case "gtidSourceIncludes": return getOrCreateConfiguration(target).getGtidSourceIncludes();
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return getOrCreateConfiguration(target).getHeartbeatActionQuery();
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return getOrCreateConfiguration(target).getHeartbeatIntervalMs();
         case "heartbeattopicsprefix":
@@ -519,8 +537,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "includeQuery": return getOrCreateConfiguration(target).isIncludeQuery();
         case "includeschemachanges":
         case "includeSchemaChanges": return getOrCreateConfiguration(target).isIncludeSchemaChanges();
+        case "includeschemacomments":
+        case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": return getOrCreateConfiguration(target).getInconsistentSchemaHandlingMode();
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return getOrCreateConfiguration(target).isIncrementalSnapshotAllowSchemaChanges();
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": return getOrCreateConfiguration(target).getIncrementalSnapshotChunkSize();
         case "internalkeyconverter":
@@ -601,6 +623,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
         case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
index a4fb85f..d305ae6 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
@@ -118,6 +118,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "gtidSourceFilterDmlEvents": target.getConfiguration().setGtidSourceFilterDmlEvents(property(camelContext, boolean.class, value)); return true;
         case "gtidsourceincludes":
         case "gtidSourceIncludes": target.getConfiguration().setGtidSourceIncludes(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": target.getConfiguration().setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": target.getConfiguration().setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
         case "heartbeattopicsprefix":
@@ -126,8 +128,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "includeQuery": target.getConfiguration().setIncludeQuery(property(camelContext, boolean.class, value)); return true;
         case "includeschemachanges":
         case "includeSchemaChanges": target.getConfiguration().setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": target.getConfiguration().setInconsistentSchemaHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": target.getConfiguration().setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": target.getConfiguration().setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
         case "internalkeyconverter":
@@ -208,6 +214,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -312,6 +320,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "gtidSourceFilterDmlEvents": return boolean.class;
         case "gtidsourceincludes":
         case "gtidSourceIncludes": return java.lang.String.class;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return java.lang.String.class;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return int.class;
         case "heartbeattopicsprefix":
@@ -320,8 +330,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "includeQuery": return boolean.class;
         case "includeschemachanges":
         case "includeSchemaChanges": return boolean.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": return java.lang.String.class;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": return int.class;
         case "internalkeyconverter":
@@ -402,6 +416,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "timePrecisionMode": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -507,6 +523,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "gtidSourceFilterDmlEvents": return target.getConfiguration().isGtidSourceFilterDmlEvents();
         case "gtidsourceincludes":
         case "gtidSourceIncludes": return target.getConfiguration().getGtidSourceIncludes();
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return target.getConfiguration().getHeartbeatActionQuery();
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return target.getConfiguration().getHeartbeatIntervalMs();
         case "heartbeattopicsprefix":
@@ -515,8 +533,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "includeQuery": return target.getConfiguration().isIncludeQuery();
         case "includeschemachanges":
         case "includeSchemaChanges": return target.getConfiguration().isIncludeSchemaChanges();
+        case "includeschemacomments":
+        case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
         case "inconsistentschemahandlingmode":
         case "inconsistentSchemaHandlingMode": return target.getConfiguration().getInconsistentSchemaHandlingMode();
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return target.getConfiguration().isIncrementalSnapshotAllowSchemaChanges();
         case "incrementalsnapshotchunksize":
         case "incrementalSnapshotChunkSize": return target.getConfiguration().getIncrementalSnapshotChunkSize();
         case "internalkeyconverter":
@@ -597,6 +619,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
         case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return target.getConfiguration().getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
index e8aea73..ae591ba 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
@@ -20,100 +20,104 @@ public class DebeziumMySqlEndpointUriFactory extends org.apache.camel.support.co
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(95);
+        Set<String> props = new HashSet<>(99);
         props.add("databaseJdbcDriver");
+        props.add("snapshotDelayMs");
+        props.add("snapshotLockingMode");
+        props.add("databaseSslTruststorePassword");
+        props.add("converters");
+        props.add("heartbeatIntervalMs");
+        props.add("decimalHandlingMode");
+        props.add("skippedOperations");
+        props.add("sourceStructVersion");
+        props.add("binaryHandlingMode");
+        props.add("bigintUnsignedHandlingMode");
+        props.add("databaseHostname");
+        props.add("snapshotSelectStatementOverrides");
+        props.add("databaseIncludeList");
+        props.add("gtidSourceFilterDmlEvents");
+        props.add("columnBlacklist");
+        props.add("snapshotFetchSize");
+        props.add("offsetStoragePartitions");
+        props.add("databaseExcludeList");
+        props.add("additionalProperties");
+        props.add("heartbeatActionQuery");
+        props.add("databasePort");
+        props.add("databaseUser");
+        props.add("snapshotIncludeCollectionList");
+        props.add("databaseHistory");
+        props.add("includeQuery");
+        props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
+        props.add("transactionTopic");
+        props.add("includeSchemaChanges");
+        props.add("internalValueConverter");
+        props.add("retriableRestartConnectorWaitMs");
+        props.add("sanitizeFieldNames");
+        props.add("tableWhitelist");
+        props.add("tableIgnoreBuiltin");
+        props.add("signalDataCollection");
+        props.add("connectTimeoutMs");
+        props.add("databaseServerName");
+        props.add("tableBlacklist");
+        props.add("databaseSslKeystore");
+        props.add("tableExcludeList");
+        props.add("offsetCommitPolicy");
+        props.add("incrementalSnapshotChunkSize");
+        props.add("columnExcludeList");
+        props.add("gtidSourceIncludes");
+        props.add("connectKeepAliveIntervalMs");
+        props.add("databasePassword");
+        props.add("includeSchemaComments");
         props.add("maxBatchSize");
         props.add("internalKeyConverter");
-        props.add("snapshotDelayMs");
         props.add("offsetStorageTopic");
         props.add("databaseSslMode");
         props.add("bridgeErrorHandler");
-        props.add("snapshotLockingMode");
         props.add("datatypePropagateSourceType");
-        props.add("databaseSslTruststorePassword");
         props.add("provideTransactionMetadata");
-        props.add("converters");
         props.add("tombstonesOnDelete");
         props.add("databaseHistoryKafkaBootstrapServers");
         props.add("enableTimeAdjuster");
-        props.add("heartbeatIntervalMs");
         props.add("heartbeatTopicsPrefix");
         props.add("databaseHistoryKafkaRecoveryPollIntervalMs");
-        props.add("decimalHandlingMode");
-        props.add("skippedOperations");
-        props.add("sourceStructVersion");
-        props.add("binaryHandlingMode");
-        props.add("bigintUnsignedHandlingMode");
-        props.add("databaseHostname");
         props.add("databaseHistorySkipUnparseableDdl");
         props.add("databaseSslKeystorePassword");
         props.add("eventProcessingFailureHandlingMode");
         props.add("offsetCommitTimeoutMs");
         props.add("databaseServerId");
-        props.add("snapshotSelectStatementOverrides");
-        props.add("databaseIncludeList");
-        props.add("gtidSourceFilterDmlEvents");
         props.add("minRowCountToStreamResults");
         props.add("offsetFlushIntervalMs");
         props.add("offsetStorageFileName");
-        props.add("columnBlacklist");
         props.add("name");
-        props.add("snapshotFetchSize");
-        props.add("offsetStoragePartitions");
-        props.add("databaseExcludeList");
         props.add("eventDeserializationFailureHandlingMode");
-        props.add("additionalProperties");
         props.add("offsetStorageReplicationFactor");
         props.add("databaseInitialStatements");
         props.add("exceptionHandler");
-        props.add("databasePort");
-        props.add("databaseUser");
-        props.add("snapshotIncludeCollectionList");
         props.add("databaseHistoryFileFilename");
-        props.add("databaseHistory");
-        props.add("includeQuery");
         props.add("columnPropagateSourceType");
-        props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
         props.add("offsetStorage");
-        props.add("includeSchemaChanges");
-        props.add("internalValueConverter");
         props.add("inconsistentSchemaHandlingMode");
         props.add("snapshotMaxThreads");
-        props.add("retriableRestartConnectorWaitMs");
         props.add("maxQueueSize");
         props.add("messageKeyColumns");
         props.add("timePrecisionMode");
         props.add("columnWhitelist");
         props.add("pollIntervalMs");
-        props.add("sanitizeFieldNames");
         props.add("databaseHistoryKafkaTopic");
-        props.add("tableWhitelist");
         props.add("databaseHistoryStoreOnlyMonitoredTablesDdl");
-        props.add("tableIgnoreBuiltin");
-        props.add("signalDataCollection");
         props.add("exchangePattern");
-        props.add("connectTimeoutMs");
-        props.add("databaseServerName");
+        props.add("incrementalSnapshotAllowSchemaChanges");
         props.add("gtidSourceExcludes");
         props.add("databaseSslTruststore");
-        props.add("tableBlacklist");
         props.add("connectKeepAlive");
         props.add("queryFetchSize");
         props.add("snapshotMode");
         props.add("snapshotNewTables");
-        props.add("databaseSslKeystore");
         props.add("maxQueueSizeInBytes");
         props.add("snapshotLockTimeoutMs");
-        props.add("tableExcludeList");
-        props.add("offsetCommitPolicy");
         props.add("tableIncludeList");
-        props.add("incrementalSnapshotChunkSize");
-        props.add("columnExcludeList");
-        props.add("gtidSourceIncludes");
         props.add("columnIncludeList");
         props.add("binlogBufferSize");
-        props.add("connectKeepAliveIntervalMs");
-        props.add("databasePassword");
         props.add("databaseServerIdOffset");
         props.add("databaseHistoryKafkaRecoveryAttempts");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
index bdee5c9..aee336d 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
@@ -28,6 +28,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     private String gtidSourceIncludes;
     @UriParam(label = LABEL_NAME, defaultValue = "class com.mysql.cj.jdbc.Driver")
     private String databaseJdbcDriver = "com.mysql.cj.jdbc.Driver";
+    @UriParam(label = LABEL_NAME)
+    private String heartbeatActionQuery;
     @UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
     private long pollIntervalMs = 500;
     @UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
@@ -70,6 +72,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     private String columnWhitelist;
     @UriParam(label = LABEL_NAME)
     private String databaseSslTruststorePassword;
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean incrementalSnapshotAllowSchemaChanges = false;
     @UriParam(label = LABEL_NAME)
     private String columnIncludeList;
     @UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -125,6 +129,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     private String decimalHandlingMode = "precise";
     @UriParam(label = LABEL_NAME, defaultValue = "bytes")
     private String binaryHandlingMode = "bytes";
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean includeSchemaComments = false;
     @UriParam(label = LABEL_NAME, defaultValue = "off")
     private String snapshotNewTables = "off";
     @UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -141,6 +147,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     private long databaseServerId;
     @UriParam(label = LABEL_NAME, defaultValue = "0")
     private long maxQueueSizeInBytes = 0;
+    @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+    private String transactionTopic = "${database.server.name}.transaction";
     @UriParam(label = LABEL_NAME, defaultValue = "adaptive_time_microseconds")
     private String timePrecisionMode = "adaptive_time_microseconds";
     @UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -296,6 +304,17 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The query executed with every heartbeat.
+     */
+    public void setHeartbeatActionQuery(String heartbeatActionQuery) {
+        this.heartbeatActionQuery = heartbeatActionQuery;
+    }
+
+    public String getHeartbeatActionQuery() {
+        return heartbeatActionQuery;
+    }
+
+    /**
      * Time to wait for new change events to appear after receiving no events,
      * given in milliseconds. Defaults to 500 ms.
      */
@@ -578,6 +597,25 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Detect schema change during an incremental snapshot and re-select a
+     * current chunk to avoid locking DDLs. Note that changes to a primary key
+     * are not supported and can cause incorrect results if performed during an
+     * incremental snapshot. Another limitation is that if a schema change
+     * affects only columns' default values, then the change won't be detected
+     * until the DDL is processed from the binlog stream. This doesn't affect
+     * the snapshot events' values, but the schema of snapshot events may have
+     * outdated defaults.
+     */
+    public void setIncrementalSnapshotAllowSchemaChanges(
+            boolean incrementalSnapshotAllowSchemaChanges) {
+        this.incrementalSnapshotAllowSchemaChanges = incrementalSnapshotAllowSchemaChanges;
+    }
+
+    public boolean isIncrementalSnapshotAllowSchemaChanges() {
+        return incrementalSnapshotAllowSchemaChanges;
+    }
+
+    /**
      * Regular expressions matching columns to include in change events
      */
     public void setColumnIncludeList(String columnIncludeList) {
@@ -939,6 +977,22 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Whether the connector parse table and column's comment to metadata
+     * object.Note: Enable this option will bring the implications on memory
+     * usage. The number and size of ColumnImpl objects is what largely impacts
+     * how much memory is consumed by the Debezium connectors, and adding a
+     * String to each of them can potentially be quite heavy. The default is
+     * 'false'.
+     */
+    public void setIncludeSchemaComments(boolean includeSchemaComments) {
+        this.includeSchemaComments = includeSchemaComments;
+    }
+
+    public boolean isIncludeSchemaComments() {
+        return includeSchemaComments;
+    }
+
+    /**
      * BETA FEATURE: On connector restart, the connector will check if there
      * have been any new tables added to the configuration, and snapshot them.
      * There is presently only two options:'off': Default behavior. Do not
@@ -1056,6 +1110,19 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The name of the transaction metadata topic. The placeholder
+     * ${database.server.name} can be used for referring to the connector's
+     * logical name; defaults to ${database.server.name}.transaction.
+     */
+    public void setTransactionTopic(String transactionTopic) {
+        this.transactionTopic = transactionTopic;
+    }
+
+    public String getTransactionTopic() {
+        return transactionTopic;
+    }
+
+    /**
      * Time, date and timestamps can be represented with different kinds of
      * precisions, including:'adaptive_time_microseconds': the precision of date
      * and timestamp values is based the database column's precision; but time
@@ -1291,6 +1358,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "include.schema.changes", includeSchemaChanges);
         addPropertyIfNotNull(configBuilder, "gtid.source.includes", gtidSourceIncludes);
         addPropertyIfNotNull(configBuilder, "database.jdbc.driver", databaseJdbcDriver);
+        addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
         addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
         addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
         addPropertyIfNotNull(configBuilder, "signal.data.collection", signalDataCollection);
@@ -1312,6 +1380,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
         addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
         addPropertyIfNotNull(configBuilder, "database.ssl.truststore.password", databaseSslTruststorePassword);
+        addPropertyIfNotNull(configBuilder, "incremental.snapshot.allow.schema.changes", incrementalSnapshotAllowSchemaChanges);
         addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
         addPropertyIfNotNull(configBuilder, "enable.time.adjuster", enableTimeAdjuster);
         addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
@@ -1339,6 +1408,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
         addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
         addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+        addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
         addPropertyIfNotNull(configBuilder, "snapshot.new.tables", snapshotNewTables);
         addPropertyIfNotNull(configBuilder, "database.history.skip.unparseable.ddl", databaseHistorySkipUnparseableDdl);
         addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
@@ -1347,6 +1417,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "bigint.unsigned.handling.mode", bigintUnsignedHandlingMode);
         addPropertyIfNotNull(configBuilder, "database.server.id", databaseServerId);
         addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+        addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
         addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
         addPropertyIfNotNull(configBuilder, "event.deserialization.failure.handling.mode", eventDeserializationFailureHandlingMode);
         addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json b/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
index 7244328..dad0a93 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
@@ -81,11 +81,14 @@
     "gtidSourceExcludes": { "kind": "property", "displayName": "Gtid Source Excludes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to exclude GTID ranges when determine [...]
     "gtidSourceFilterDmlEvents": { "kind": "property", "displayName": "Gtid Source Filter Dml Events", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to true, we will only  [...]
     "gtidSourceIncludes": { "kind": "property", "displayName": "Gtid Source Includes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to include GTID ranges when determine [...]
+    "heartbeatActionQuery": { "kind": "property", "displayName": "Heartbeat Action Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
     "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in  [...]
     "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix th [...]
     "includeQuery": { "kind": "property", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL que [...]
     "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish chan [...]
+    "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse table and  [...]
     "inconsistentSchemaHandlingMode": { "kind": "property", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify ho [...]
+    "incrementalSnapshotAllowSchemaChanges": { "kind": "property", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Dete [...]
     "incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of chunk fo [...]
     "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
     "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the dat [...]
@@ -115,7 +118,8 @@
     "tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated, use tab [...]
     "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive_time_microseconds", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date and  [...]
-    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represen [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represen [...]
+    "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name  [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same  [...]
@@ -178,11 +182,14 @@
     "gtidSourceExcludes": { "kind": "parameter", "displayName": "Gtid Source Excludes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to exclude GTID ranges when determin [...]
     "gtidSourceFilterDmlEvents": { "kind": "parameter", "displayName": "Gtid Source Filter Dml Events", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to true, we will only [...]
     "gtidSourceIncludes": { "kind": "parameter", "displayName": "Gtid Source Includes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to include GTID ranges when determin [...]
+    "heartbeatActionQuery": { "kind": "parameter", "displayName": "Heartbeat Action Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
     "heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in [...]
     "heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix t [...]
     "includeQuery": { "kind": "parameter", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL qu [...]
     "includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish cha [...]
+    "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse table and [...]
     "inconsistentSchemaHandlingMode": { "kind": "parameter", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify h [...]
+    "incrementalSnapshotAllowSchemaChanges": { "kind": "parameter", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Det [...]
     "incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of chunk f [...]
     "maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
     "maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the da [...]
@@ -212,6 +219,7 @@
     "tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated, use ta [...]
     "timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive_time_microseconds", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date and [...]
-    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represe [...]
+    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represe [...]
+    "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name [...]
   }
 }
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
index deebfe0..26da5f0 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
@@ -92,6 +92,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
         case "hstorehandlingmode":
         case "hstoreHandlingMode": getOrCreateConfiguration(target).setHstoreHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": getOrCreateConfiguration(target).setIncludeUnknownDatatypes(property(camelContext, boolean.class, value)); return true;
         case "incrementalsnapshotchunksize":
@@ -110,6 +112,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "maxQueueSizeInBytes": getOrCreateConfiguration(target).setMaxQueueSizeInBytes(property(camelContext, long.class, value)); return true;
         case "messagekeycolumns":
         case "messageKeyColumns": getOrCreateConfiguration(target).setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": getOrCreateConfiguration(target).setMessagePrefixExcludeList(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": getOrCreateConfiguration(target).setMessagePrefixIncludeList(property(camelContext, java.lang.String.class, value)); return true;
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
         case "offsetcommittimeoutms":
@@ -198,12 +204,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
         case "timeprecisionmode":
         case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": getOrCreateConfiguration(target).setToastedValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "truncatehandlingmode":
         case "truncateHandlingMode": getOrCreateConfiguration(target).setTruncateHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": getOrCreateConfiguration(target).setUnavailableValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": getOrCreateConfiguration(target).setXminFetchIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         default: return false;
@@ -277,6 +285,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "heartbeatTopicsPrefix": return java.lang.String.class;
         case "hstorehandlingmode":
         case "hstoreHandlingMode": return java.lang.String.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": return boolean.class;
         case "incrementalsnapshotchunksize":
@@ -295,6 +305,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "maxQueueSizeInBytes": return long.class;
         case "messagekeycolumns":
         case "messageKeyColumns": return java.lang.String.class;
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": return java.lang.String.class;
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": return java.lang.String.class;
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": return java.lang.String.class;
         case "offsetcommittimeoutms":
@@ -383,12 +397,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "tableWhitelist": return java.lang.String.class;
         case "timeprecisionmode":
         case "timePrecisionMode": return java.lang.String.class;
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         case "truncatehandlingmode":
         case "truncateHandlingMode": return java.lang.String.class;
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": return java.lang.String.class;
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": return long.class;
         default: return null;
@@ -463,6 +479,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "heartbeatTopicsPrefix": return getOrCreateConfiguration(target).getHeartbeatTopicsPrefix();
         case "hstorehandlingmode":
         case "hstoreHandlingMode": return getOrCreateConfiguration(target).getHstoreHandlingMode();
+        case "includeschemacomments":
+        case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": return getOrCreateConfiguration(target).isIncludeUnknownDatatypes();
         case "incrementalsnapshotchunksize":
@@ -481,6 +499,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "maxQueueSizeInBytes": return getOrCreateConfiguration(target).getMaxQueueSizeInBytes();
         case "messagekeycolumns":
         case "messageKeyColumns": return getOrCreateConfiguration(target).getMessageKeyColumns();
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": return getOrCreateConfiguration(target).getMessagePrefixExcludeList();
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": return getOrCreateConfiguration(target).getMessagePrefixIncludeList();
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": return getOrCreateConfiguration(target).getOffsetCommitPolicy();
         case "offsetcommittimeoutms":
@@ -569,12 +591,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
         case "tableWhitelist": return getOrCreateConfiguration(target).getTableWhitelist();
         case "timeprecisionmode":
         case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": return getOrCreateConfiguration(target).getToastedValuePlaceholder();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
         case "truncatehandlingmode":
         case "truncateHandlingMode": return getOrCreateConfiguration(target).getTruncateHandlingMode();
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": return getOrCreateConfiguration(target).getUnavailableValuePlaceholder();
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": return getOrCreateConfiguration(target).getXminFetchIntervalMs();
         default: return null;
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
index 27ad563..2ab4c0e 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
@@ -86,6 +86,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "heartbeatTopicsPrefix": target.getConfiguration().setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
         case "hstorehandlingmode":
         case "hstoreHandlingMode": target.getConfiguration().setHstoreHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": target.getConfiguration().setIncludeUnknownDatatypes(property(camelContext, boolean.class, value)); return true;
         case "incrementalsnapshotchunksize":
@@ -104,6 +106,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "maxQueueSizeInBytes": target.getConfiguration().setMaxQueueSizeInBytes(property(camelContext, long.class, value)); return true;
         case "messagekeycolumns":
         case "messageKeyColumns": target.getConfiguration().setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": target.getConfiguration().setMessagePrefixExcludeList(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": target.getConfiguration().setMessagePrefixIncludeList(property(camelContext, java.lang.String.class, value)); return true;
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": target.getConfiguration().setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
         case "offsetcommittimeoutms":
@@ -192,12 +198,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "tableWhitelist": target.getConfiguration().setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
         case "timeprecisionmode":
         case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": target.getConfiguration().setToastedValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "truncatehandlingmode":
         case "truncateHandlingMode": target.getConfiguration().setTruncateHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": target.getConfiguration().setUnavailableValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": target.getConfiguration().setXminFetchIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         default: return false;
@@ -272,6 +280,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "heartbeatTopicsPrefix": return java.lang.String.class;
         case "hstorehandlingmode":
         case "hstoreHandlingMode": return java.lang.String.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": return boolean.class;
         case "incrementalsnapshotchunksize":
@@ -290,6 +300,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "maxQueueSizeInBytes": return long.class;
         case "messagekeycolumns":
         case "messageKeyColumns": return java.lang.String.class;
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": return java.lang.String.class;
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": return java.lang.String.class;
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": return java.lang.String.class;
         case "offsetcommittimeoutms":
@@ -378,12 +392,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "tableWhitelist": return java.lang.String.class;
         case "timeprecisionmode":
         case "timePrecisionMode": return java.lang.String.class;
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         case "truncatehandlingmode":
         case "truncateHandlingMode": return java.lang.String.class;
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": return java.lang.String.class;
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": return long.class;
         default: return null;
@@ -459,6 +475,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "heartbeatTopicsPrefix": return target.getConfiguration().getHeartbeatTopicsPrefix();
         case "hstorehandlingmode":
         case "hstoreHandlingMode": return target.getConfiguration().getHstoreHandlingMode();
+        case "includeschemacomments":
+        case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
         case "includeunknowndatatypes":
         case "includeUnknownDatatypes": return target.getConfiguration().isIncludeUnknownDatatypes();
         case "incrementalsnapshotchunksize":
@@ -477,6 +495,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "maxQueueSizeInBytes": return target.getConfiguration().getMaxQueueSizeInBytes();
         case "messagekeycolumns":
         case "messageKeyColumns": return target.getConfiguration().getMessageKeyColumns();
+        case "messageprefixexcludelist":
+        case "messagePrefixExcludeList": return target.getConfiguration().getMessagePrefixExcludeList();
+        case "messageprefixincludelist":
+        case "messagePrefixIncludeList": return target.getConfiguration().getMessagePrefixIncludeList();
         case "offsetcommitpolicy":
         case "offsetCommitPolicy": return target.getConfiguration().getOffsetCommitPolicy();
         case "offsetcommittimeoutms":
@@ -565,12 +587,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
         case "tableWhitelist": return target.getConfiguration().getTableWhitelist();
         case "timeprecisionmode":
         case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
-        case "toastedvalueplaceholder":
-        case "toastedValuePlaceholder": return target.getConfiguration().getToastedValuePlaceholder();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return target.getConfiguration().getTransactionTopic();
         case "truncatehandlingmode":
         case "truncateHandlingMode": return target.getConfiguration().getTruncateHandlingMode();
+        case "unavailablevalueplaceholder":
+        case "unavailableValuePlaceholder": return target.getConfiguration().getUnavailableValuePlaceholder();
         case "xminfetchintervalms":
         case "xminFetchIntervalMs": return target.getConfiguration().getXminFetchIntervalMs();
         default: return null;
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
index 073c932..3a43b4a 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(91);
+        Set<String> props = new HashSet<>(95);
         props.add("slotDropOnStop");
         props.add("includeUnknownDatatypes");
         props.add("maxBatchSize");
@@ -29,10 +29,10 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
         props.add("offsetStorageTopic");
         props.add("databaseSslkey");
         props.add("slotName");
-        props.add("toastedValuePlaceholder");
         props.add("bridgeErrorHandler");
         props.add("databaseTcpkeepalive");
         props.add("datatypePropagateSourceType");
+        props.add("messagePrefixIncludeList");
         props.add("schemaRefreshMode");
         props.add("publicationAutocreateMode");
         props.add("provideTransactionMetadata");
@@ -74,6 +74,8 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
         props.add("databaseHistoryFileFilename");
         props.add("schemaIncludeList");
         props.add("columnPropagateSourceType");
+        props.add("unavailableValuePlaceholder");
+        props.add("transactionTopic");
         props.add("offsetStorage");
         props.add("slotRetryDelayMs");
         props.add("internalValueConverter");
@@ -86,6 +88,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
         props.add("timePrecisionMode");
         props.add("truncateHandlingMode");
         props.add("columnWhitelist");
+        props.add("messagePrefixExcludeList");
         props.add("pollIntervalMs");
         props.add("sanitizeFieldNames");
         props.add("databaseSslmode");
@@ -112,6 +115,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
         props.add("databasePassword");
         props.add("databaseDbname");
         props.add("publicationName");
+        props.add("includeSchemaComments");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         SECRET_PROPERTY_NAMES = Collections.emptySet();
     }
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
index d43ff91..5ceacbe 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
@@ -32,6 +32,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     private String schemaRefreshMode = "columns_diff";
     @UriParam(label = LABEL_NAME, defaultValue = "disable")
     private String databaseSslmode = "disable";
+    @UriParam(label = LABEL_NAME, defaultValue = "__debezium_unavailable_value")
+    private String unavailableValuePlaceholder = "__debezium_unavailable_value";
     @UriParam(label = LABEL_NAME)
     private String heartbeatActionQuery;
     @UriParam(label = LABEL_NAME)
@@ -80,8 +82,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     private String pluginName = "decoderbufs";
     @UriParam(label = LABEL_NAME)
     private String databaseSslpassword;
-    @UriParam(label = LABEL_NAME, defaultValue = "__debezium_unavailable_value")
-    private String toastedValuePlaceholder = "__debezium_unavailable_value";
     @UriParam(label = LABEL_NAME)
     private String schemaWhitelist;
     @UriParam(label = LABEL_NAME)
@@ -99,6 +99,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     private String skippedOperations;
     @UriParam(label = LABEL_NAME, defaultValue = "initial")
     private String snapshotMode = "initial";
+    @UriParam(label = LABEL_NAME)
+    private String messagePrefixIncludeList;
     @UriParam(label = LABEL_NAME, defaultValue = "8192")
     private int maxQueueSize = 8192;
     @UriParam(label = LABEL_NAME)
@@ -125,6 +127,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     private String decimalHandlingMode = "precise";
     @UriParam(label = LABEL_NAME, defaultValue = "bytes")
     private String binaryHandlingMode = "bytes";
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean includeSchemaComments = false;
     @UriParam(label = LABEL_NAME, defaultValue = "skip")
     private String truncateHandlingMode = "skip";
     @UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -143,11 +147,15 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     private boolean slotDropOnStop = false;
     @UriParam(label = LABEL_NAME, defaultValue = "0")
     private long maxQueueSizeInBytes = 0;
+    @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+    private String transactionTopic = "${database.server.name}.transaction";
     @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
     private long xminFetchIntervalMs = 0;
     @UriParam(label = LABEL_NAME, defaultValue = "adaptive")
     private String timePrecisionMode = "adaptive";
     @UriParam(label = LABEL_NAME)
+    private String messagePrefixExcludeList;
+    @UriParam(label = LABEL_NAME)
     @Metadata(required = true)
     private String databaseServerName;
     @UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -310,6 +318,21 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Specify the constant that will be provided by Debezium to indicate that
+     * the original value is a toasted value not provided by the database. If
+     * starts with 'hex:' prefix it is expected that the rest of the string
+     * represents hexadecimal encoded octets.
+     */
+    public void setUnavailableValuePlaceholder(
+            String unavailableValuePlaceholder) {
+        this.unavailableValuePlaceholder = unavailableValuePlaceholder;
+    }
+
+    public String getUnavailableValuePlaceholder() {
+        return unavailableValuePlaceholder;
+    }
+
+    /**
      * The query executed with every heartbeat.
      */
     public void setHeartbeatActionQuery(String heartbeatActionQuery) {
@@ -619,20 +642,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
-     * Specify the constant that will be provided by Debezium to indicate that
-     * the original value is a toasted value not provided by the database. If
-     * starts with 'hex:' prefix it is expected that the rest of the string
-     * repesents hexadecimally encoded octets.
-     */
-    public void setToastedValuePlaceholder(String toastedValuePlaceholder) {
-        this.toastedValuePlaceholder = toastedValuePlaceholder;
-    }
-
-    public String getToastedValuePlaceholder() {
-        return toastedValuePlaceholder;
-    }
-
-    /**
      * The schemas for which events should be captured (deprecated, use
      * "schema.include.list" instead)
      */
@@ -740,6 +749,19 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * A comma-separated list of regular expressions that match the logical
+     * decoding message prefixes to be monitored. All prefixes are monitored by
+     * default.
+     */
+    public void setMessagePrefixIncludeList(String messagePrefixIncludeList) {
+        this.messagePrefixIncludeList = messagePrefixIncludeList;
+    }
+
+    public String getMessagePrefixIncludeList() {
+        return messagePrefixIncludeList;
+    }
+
+    /**
      * Maximum size of the queue for change events read from the database log
      * but not yet recorded or forwarded. Defaults to 8192, and should always be
      * larger than the maximum batch size.
@@ -911,6 +933,22 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Whether the connector parse table and column's comment to metadata
+     * object.Note: Enable this option will bring the implications on memory
+     * usage. The number and size of ColumnImpl objects is what largely impacts
+     * how much memory is consumed by the Debezium connectors, and adding a
+     * String to each of them can potentially be quite heavy. The default is
+     * 'false'.
+     */
+    public void setIncludeSchemaComments(boolean includeSchemaComments) {
+        this.includeSchemaComments = includeSchemaComments;
+    }
+
+    public boolean isIncludeSchemaComments() {
+        return includeSchemaComments;
+    }
+
+    /**
      * Specify how TRUNCATE operations are handled for change events (supported
      * only on pg11+ pgoutput plugin), including: 'skip' to skip / ignore
      * TRUNCATE events (default), 'include' to handle and include TRUNCATE
@@ -1033,6 +1071,19 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The name of the transaction metadata topic. The placeholder
+     * ${database.server.name} can be used for referring to the connector's
+     * logical name; defaults to ${database.server.name}.transaction.
+     */
+    public void setTransactionTopic(String transactionTopic) {
+        this.transactionTopic = transactionTopic;
+    }
+
+    public String getTransactionTopic() {
+        return transactionTopic;
+    }
+
+    /**
      * Specify how often (in ms) the xmin will be fetched from the replication
      * slot. This xmin value is exposed by the slot which gives a lower bound of
      * where a new replication slot could start from. The lower the value, the
@@ -1068,6 +1119,18 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * A comma-separated list of regular expressions that match the logical
+     * decoding message prefixes to be excluded from monitoring.
+     */
+    public void setMessagePrefixExcludeList(String messagePrefixExcludeList) {
+        this.messagePrefixExcludeList = messagePrefixExcludeList;
+    }
+
+    public String getMessagePrefixExcludeList() {
+        return messagePrefixExcludeList;
+    }
+
+    /**
      * Unique name that identifies the database server and all recorded offsets,
      * and that is used as a prefix for all schemas and topics. Each distinct
      * installation should have a separate namespace and be monitored by at most
@@ -1193,6 +1256,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "slot.max.retries", slotMaxRetries);
         addPropertyIfNotNull(configBuilder, "schema.refresh.mode", schemaRefreshMode);
         addPropertyIfNotNull(configBuilder, "database.sslmode", databaseSslmode);
+        addPropertyIfNotNull(configBuilder, "unavailable.value.placeholder", unavailableValuePlaceholder);
         addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
         addPropertyIfNotNull(configBuilder, "database.sslcert", databaseSslcert);
         addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
@@ -1217,7 +1281,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
         addPropertyIfNotNull(configBuilder, "plugin.name", pluginName);
         addPropertyIfNotNull(configBuilder, "database.sslpassword", databaseSslpassword);
-        addPropertyIfNotNull(configBuilder, "toasted.value.placeholder", toastedValuePlaceholder);
         addPropertyIfNotNull(configBuilder, "schema.whitelist", schemaWhitelist);
         addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
         addPropertyIfNotNull(configBuilder, "table.exclude.list", tableExcludeList);
@@ -1226,6 +1289,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
         addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
         addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
+        addPropertyIfNotNull(configBuilder, "message.prefix.include.list", messagePrefixIncludeList);
         addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
         addPropertyIfNotNull(configBuilder, "snapshot.custom.class", snapshotCustomClass);
         addPropertyIfNotNull(configBuilder, "slot.name", slotName);
@@ -1239,6 +1303,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "slot.retry.delay.ms", slotRetryDelayMs);
         addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
         addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+        addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
         addPropertyIfNotNull(configBuilder, "truncate.handling.mode", truncateHandlingMode);
         addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
         addPropertyIfNotNull(configBuilder, "database.tcpKeepAlive", databaseTcpkeepalive);
@@ -1248,8 +1313,10 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
         addPropertyIfNotNull(configBuilder, "slot.drop.on.stop", slotDropOnStop);
         addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+        addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
         addPropertyIfNotNull(configBuilder, "xmin.fetch.interval.ms", xminFetchIntervalMs);
         addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
+        addPropertyIfNotNull(configBuilder, "message.prefix.exclude.list", messagePrefixExcludeList);
         addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
         addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
         addPropertyIfNotNull(configBuilder, "snapshot.max.threads", snapshotMaxThreads);
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json b/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
index 0ae0939..8e4a5c8 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
@@ -65,6 +65,7 @@
     "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-secon [...]
     "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The  [...]
     "hstoreHandlingMode": { "kind": "property", "displayName": "Hstore Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "json", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how HSTORE columns [...]
+    "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse t [...]
     "includeUnknownDatatypes": { "kind": "property", "displayName": "Include Unknown Datatypes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify whether the field [...]
     "incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of [...]
     "intervalHandlingMode": { "kind": "property", "displayName": "Interval Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "numeric", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how INTERVA [...]
@@ -72,6 +73,8 @@
     "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read fro [...]
     "maxQueueSizeInBytes": { "kind": "property", "displayName": "Max Queue Size In Bytes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue in bytes for [...]
     "messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match [...]
+    "messagePrefixExcludeList": { "kind": "property", "displayName": "Message Prefix Exclude List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular exp [...]
+    "messagePrefixIncludeList": { "kind": "property", "displayName": "Message Prefix Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular exp [...]
     "pluginName": { "kind": "property", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical dec [...]
     "pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time to wait for new change events to appea [...]
     "provideTransactionMetadata": { "kind": "property", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction [...]
@@ -108,9 +111,10 @@
     "tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated [...]
     "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestam [...]
-    "toastedValuePlaceholder": { "kind": "property", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
     "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be [...]
+    "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": " [...]
     "truncateHandlingMode": { "kind": "property", "displayName": "Truncate Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "skip", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how TRUNCATE o [...]
+    "unavailableValuePlaceholder": { "kind": "property", "displayName": "Unavailable Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration",  [...]
     "xminFetchIntervalMs": { "kind": "property", "displayName": "Xmin Fetch Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how often (in ms) the xmin [...]
   },
   "properties": {
@@ -158,6 +162,7 @@
     "heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seco [...]
     "heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
     "hstoreHandlingMode": { "kind": "parameter", "displayName": "Hstore Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "json", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how HSTORE column [...]
+    "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse  [...]
     "includeUnknownDatatypes": { "kind": "parameter", "displayName": "Include Unknown Datatypes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify whether the fiel [...]
     "incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size o [...]
     "intervalHandlingMode": { "kind": "parameter", "displayName": "Interval Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "numeric", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how INTERV [...]
@@ -165,6 +170,8 @@
     "maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read fr [...]
     "maxQueueSizeInBytes": { "kind": "parameter", "displayName": "Max Queue Size In Bytes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue in bytes fo [...]
     "messageKeyColumns": { "kind": "parameter", "displayName": "Message Key Columns", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that matc [...]
+    "messagePrefixExcludeList": { "kind": "parameter", "displayName": "Message Prefix Exclude List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular ex [...]
+    "messagePrefixIncludeList": { "kind": "parameter", "displayName": "Message Prefix Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular ex [...]
     "pluginName": { "kind": "parameter", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical de [...]
     "pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time to wait for new change events to appe [...]
     "provideTransactionMetadata": { "kind": "parameter", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transactio [...]
@@ -201,9 +208,10 @@
     "tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecate [...]
     "timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timesta [...]
-    "toastedValuePlaceholder": { "kind": "parameter", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descri [...]
     "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should b [...]
+    "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description":  [...]
     "truncateHandlingMode": { "kind": "parameter", "displayName": "Truncate Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "skip", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how TRUNCATE  [...]
+    "unavailableValuePlaceholder": { "kind": "parameter", "displayName": "Unavailable Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", [...]
     "xminFetchIntervalMs": { "kind": "parameter", "displayName": "Xmin Fetch Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how often (in ms) the xmi [...]
   }
 }
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
index 941c90d..eae2122 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
@@ -88,12 +88,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "decimalHandlingMode": getOrCreateConfiguration(target).setDecimalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
         case "eventprocessingfailurehandlingmode":
         case "eventProcessingFailureHandlingMode": getOrCreateConfiguration(target).setEventProcessingFailureHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": getOrCreateConfiguration(target).setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
         case "includeschemachanges":
         case "includeSchemaChanges": getOrCreateConfiguration(target).setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": getOrCreateConfiguration(target).setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": getOrCreateConfiguration(target).setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": getOrCreateConfiguration(target).setIncrementalSnapshotOptionRecompile(property(camelContext, boolean.class, value)); return true;
         case "internalkeyconverter":
         case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
         case "internalvalueconverter":
@@ -172,6 +182,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -239,12 +251,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "decimalHandlingMode": return java.lang.String.class;
         case "eventprocessingfailurehandlingmode":
         case "eventProcessingFailureHandlingMode": return java.lang.String.class;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return java.lang.String.class;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return int.class;
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": return java.lang.String.class;
         case "includeschemachanges":
         case "includeSchemaChanges": return boolean.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": return int.class;
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": return boolean.class;
         case "internalkeyconverter":
         case "internalKeyConverter": return java.lang.String.class;
         case "internalvalueconverter":
@@ -323,6 +345,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "timePrecisionMode": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -391,12 +415,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "decimalHandlingMode": return getOrCreateConfiguration(target).getDecimalHandlingMode();
         case "eventprocessingfailurehandlingmode":
         case "eventProcessingFailureHandlingMode": return getOrCreateConfiguration(target).getEventProcessingFailureHandlingMode();
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return getOrCreateConfiguration(target).getHeartbeatActionQuery();
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return getOrCreateConfiguration(target).getHeartbeatIntervalMs();
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": return getOrCreateConfiguration(target).getHeartbeatTopicsPrefix();
         case "includeschemachanges":
         case "includeSchemaChanges": return getOrCreateConfiguration(target).isIncludeSchemaChanges();
+        case "includeschemacomments":
+        case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return getOrCreateConfiguration(target).isIncrementalSnapshotAllowSchemaChanges();
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": return getOrCreateConfiguration(target).getIncrementalSnapshotChunkSize();
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": return getOrCreateConfiguration(target).isIncrementalSnapshotOptionRecompile();
         case "internalkeyconverter":
         case "internalKeyConverter": return getOrCreateConfiguration(target).getInternalKeyConverter();
         case "internalvalueconverter":
@@ -475,6 +509,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
         case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
index 9fb8ec8..03e7719 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
@@ -82,12 +82,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
         case "exchangepattern":
         case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": target.getConfiguration().setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": target.getConfiguration().setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": target.getConfiguration().setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
         case "includeschemachanges":
         case "includeSchemaChanges": target.getConfiguration().setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "includeschemacomments":
+        case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": target.getConfiguration().setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": target.getConfiguration().setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": target.getConfiguration().setIncrementalSnapshotOptionRecompile(property(camelContext, boolean.class, value)); return true;
         case "internalkeyconverter":
         case "internalKeyConverter": target.getConfiguration().setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
         case "internalvalueconverter":
@@ -166,6 +176,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
         case "tombstonesondelete":
         case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "transactiontopic":
+        case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
@@ -234,12 +246,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
         case "exchangepattern":
         case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return java.lang.String.class;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return int.class;
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": return java.lang.String.class;
         case "includeschemachanges":
         case "includeSchemaChanges": return boolean.class;
+        case "includeschemacomments":
+        case "includeSchemaComments": return boolean.class;
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": return int.class;
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": return boolean.class;
         case "internalkeyconverter":
         case "internalKeyConverter": return java.lang.String.class;
         case "internalvalueconverter":
@@ -318,6 +340,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "timePrecisionMode": return java.lang.String.class;
         case "tombstonesondelete":
         case "tombstonesOnDelete": return boolean.class;
+        case "transactiontopic":
+        case "transactionTopic": return java.lang.String.class;
         default: return null;
         }
     }
@@ -387,12 +411,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "exceptionHandler": return target.getExceptionHandler();
         case "exchangepattern":
         case "exchangePattern": return target.getExchangePattern();
+        case "heartbeatactionquery":
+        case "heartbeatActionQuery": return target.getConfiguration().getHeartbeatActionQuery();
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return target.getConfiguration().getHeartbeatIntervalMs();
         case "heartbeattopicsprefix":
         case "heartbeatTopicsPrefix": return target.getConfiguration().getHeartbeatTopicsPrefix();
         case "includeschemachanges":
         case "includeSchemaChanges": return target.getConfiguration().isIncludeSchemaChanges();
+        case "includeschemacomments":
+        case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
+        case "incrementalsnapshotallowschemachanges":
+        case "incrementalSnapshotAllowSchemaChanges": return target.getConfiguration().isIncrementalSnapshotAllowSchemaChanges();
+        case "incrementalsnapshotchunksize":
+        case "incrementalSnapshotChunkSize": return target.getConfiguration().getIncrementalSnapshotChunkSize();
+        case "incrementalsnapshotoptionrecompile":
+        case "incrementalSnapshotOptionRecompile": return target.getConfiguration().isIncrementalSnapshotOptionRecompile();
         case "internalkeyconverter":
         case "internalKeyConverter": return target.getConfiguration().getInternalKeyConverter();
         case "internalvalueconverter":
@@ -471,6 +505,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
         case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
         case "tombstonesondelete":
         case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+        case "transactiontopic":
+        case "transactionTopic": return target.getConfiguration().getTransactionTopic();
         default: return null;
         }
     }
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
index a707df2..94805f5 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(74);
+        Set<String> props = new HashSet<>(80);
         props.add("maxBatchSize");
         props.add("internalKeyConverter");
         props.add("snapshotDelayMs");
@@ -54,6 +54,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
         props.add("additionalProperties");
         props.add("offsetStorageReplicationFactor");
         props.add("databaseNames");
+        props.add("heartbeatActionQuery");
         props.add("exceptionHandler");
         props.add("sourceTimestampMode");
         props.add("databasePort");
@@ -63,6 +64,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
         props.add("databaseHistory");
         props.add("columnPropagateSourceType");
         props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
+        props.add("transactionTopic");
         props.add("offsetStorage");
         props.add("includeSchemaChanges");
         props.add("internalValueConverter");
@@ -80,8 +82,10 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
         props.add("tableIgnoreBuiltin");
         props.add("signalDataCollection");
         props.add("exchangePattern");
+        props.add("incrementalSnapshotAllowSchemaChanges");
         props.add("databaseInstance");
         props.add("databaseServerName");
+        props.add("incrementalSnapshotOptionRecompile");
         props.add("tableBlacklist");
         props.add("queryFetchSize");
         props.add("snapshotMode");
@@ -90,11 +94,13 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
         props.add("tableExcludeList");
         props.add("offsetCommitPolicy");
         props.add("tableIncludeList");
+        props.add("incrementalSnapshotChunkSize");
         props.add("columnExcludeList");
         props.add("columnIncludeList");
         props.add("databasePassword");
         props.add("databaseDbname");
         props.add("databaseHistoryKafkaRecoveryAttempts");
+        props.add("includeSchemaComments");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         SECRET_PROPERTY_NAMES = Collections.emptySet();
     }
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
index 5499861..18b81df 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
@@ -24,6 +24,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     private String tableBlacklist;
     @UriParam(label = LABEL_NAME, defaultValue = "true")
     private boolean includeSchemaChanges = true;
+    @UriParam(label = LABEL_NAME)
+    private String heartbeatActionQuery;
     @UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
     private long pollIntervalMs = 500;
     @UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
@@ -62,6 +64,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     private int heartbeatIntervalMs = 0;
     @UriParam(label = LABEL_NAME)
     private String columnWhitelist;
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean incrementalSnapshotAllowSchemaChanges = false;
     @UriParam(label = LABEL_NAME)
     private String columnIncludeList;
     @UriParam(label = LABEL_NAME)
@@ -83,6 +87,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     private String databaseHistory = "io.debezium.relational.history.FileDatabaseHistory";
     @UriParam(label = LABEL_NAME, defaultValue = "8192")
     private int maxQueueSize = 8192;
+    @UriParam(label = LABEL_NAME, defaultValue = "1024")
+    private int incrementalSnapshotChunkSize = 1024;
     @UriParam(label = LABEL_NAME)
     private String databaseHistoryKafkaTopic;
     @UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
@@ -102,15 +108,21 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     @UriParam(label = LABEL_NAME, defaultValue = "bytes")
     private String binaryHandlingMode = "bytes";
     @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean includeSchemaComments = false;
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
     private boolean databaseHistorySkipUnparseableDdl = false;
     @UriParam(label = LABEL_NAME, defaultValue = "true")
     private boolean tableIgnoreBuiltin = true;
+    @UriParam(label = LABEL_NAME, defaultValue = "false")
+    private boolean incrementalSnapshotOptionRecompile = false;
     @UriParam(label = LABEL_NAME)
     private String snapshotIncludeCollectionList;
     @UriParam(label = LABEL_NAME)
     private String databaseHistoryFileFilename;
     @UriParam(label = LABEL_NAME, defaultValue = "0")
     private long maxQueueSizeInBytes = 0;
+    @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+    private String transactionTopic = "${database.server.name}.transaction";
     @UriParam(label = LABEL_NAME, defaultValue = "adaptive")
     private String timePrecisionMode = "adaptive";
     @UriParam(label = LABEL_NAME)
@@ -217,6 +229,17 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The query executed with every heartbeat.
+     */
+    public void setHeartbeatActionQuery(String heartbeatActionQuery) {
+        this.heartbeatActionQuery = heartbeatActionQuery;
+    }
+
+    public String getHeartbeatActionQuery() {
+        return heartbeatActionQuery;
+    }
+
+    /**
      * Time to wait for new change events to appear after receiving no events,
      * given in milliseconds. Defaults to 500 ms.
      */
@@ -468,6 +491,25 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Detect schema change during an incremental snapshot and re-select a
+     * current chunk to avoid locking DDLs. Note that changes to a primary key
+     * are not supported and can cause incorrect results if performed during an
+     * incremental snapshot. Another limitation is that if a schema change
+     * affects only columns' default values, then the change won't be detected
+     * until the DDL is processed from the binlog stream. This doesn't affect
+     * the snapshot events' values, but the schema of snapshot events may have
+     * outdated defaults.
+     */
+    public void setIncrementalSnapshotAllowSchemaChanges(
+            boolean incrementalSnapshotAllowSchemaChanges) {
+        this.incrementalSnapshotAllowSchemaChanges = incrementalSnapshotAllowSchemaChanges;
+    }
+
+    public boolean isIncrementalSnapshotAllowSchemaChanges() {
+        return incrementalSnapshotAllowSchemaChanges;
+    }
+
+    /**
      * Regular expressions matching columns to include in change events
      */
     public void setColumnIncludeList(String columnIncludeList) {
@@ -597,6 +639,17 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The maximum size of chunk for incremental snapshotting
+     */
+    public void setIncrementalSnapshotChunkSize(int incrementalSnapshotChunkSize) {
+        this.incrementalSnapshotChunkSize = incrementalSnapshotChunkSize;
+    }
+
+    public int getIncrementalSnapshotChunkSize() {
+        return incrementalSnapshotChunkSize;
+    }
+
+    /**
      * The name of the topic for the database schema history
      */
     public void setDatabaseHistoryKafkaTopic(String databaseHistoryKafkaTopic) {
@@ -716,6 +769,22 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Whether the connector parse table and column's comment to metadata
+     * object.Note: Enable this option will bring the implications on memory
+     * usage. The number and size of ColumnImpl objects is what largely impacts
+     * how much memory is consumed by the Debezium connectors, and adding a
+     * String to each of them can potentially be quite heavy. The default is
+     * 'false'.
+     */
+    public void setIncludeSchemaComments(boolean includeSchemaComments) {
+        this.includeSchemaComments = includeSchemaComments;
+    }
+
+    public boolean isIncludeSchemaComments() {
+        return includeSchemaComments;
+    }
+
+    /**
      * Controls the action Debezium will take when it meets a DDL statement in
      * binlog, that it cannot parse.By default the connector will stop operating
      * but by changing the setting it can ignore the statements which it cannot
@@ -742,6 +811,20 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * Add OPTION(RECOMPILE) on each SELECT statement during the incremental
+     * snapshot process. This prevents parameter sniffing but can cause CPU
+     * pressure on the source database.
+     */
+    public void setIncrementalSnapshotOptionRecompile(
+            boolean incrementalSnapshotOptionRecompile) {
+        this.incrementalSnapshotOptionRecompile = incrementalSnapshotOptionRecompile;
+    }
+
+    public boolean isIncrementalSnapshotOptionRecompile() {
+        return incrementalSnapshotOptionRecompile;
+    }
+
+    /**
      * this setting must be set to specify a list of tables/collections whose
      * snapshot must be taken on creating or restarting the connector.
      */
@@ -780,6 +863,19 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     }
 
     /**
+     * The name of the transaction metadata topic. The placeholder
+     * ${database.server.name} can be used for referring to the connector's
+     * logical name; defaults to ${database.server.name}.transaction.
+     */
+    public void setTransactionTopic(String transactionTopic) {
+        this.transactionTopic = transactionTopic;
+    }
+
+    public String getTransactionTopic() {
+        return transactionTopic;
+    }
+
+    /**
      * Time, date, and timestamps can be represented with different kinds of
      * precisions, including:'adaptive' (the default) bases the precision of
      * time, date, and timestamp values on the database column's precision;
@@ -931,6 +1027,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "database.instance", databaseInstance);
         addPropertyIfNotNull(configBuilder, "table.blacklist", tableBlacklist);
         addPropertyIfNotNull(configBuilder, "include.schema.changes", includeSchemaChanges);
+        addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
         addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
         addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
         addPropertyIfNotNull(configBuilder, "signal.data.collection", signalDataCollection);
@@ -950,6 +1047,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
         addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
         addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
+        addPropertyIfNotNull(configBuilder, "incremental.snapshot.allow.schema.changes", incrementalSnapshotAllowSchemaChanges);
         addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
         addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
         addPropertyIfNotNull(configBuilder, "table.exclude.list", tableExcludeList);
@@ -960,6 +1058,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
         addPropertyIfNotNull(configBuilder, "database.history", databaseHistory);
         addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
+        addPropertyIfNotNull(configBuilder, "incremental.snapshot.chunk.size", incrementalSnapshotChunkSize);
         addPropertyIfNotNull(configBuilder, "database.history.kafka.topic", databaseHistoryKafkaTopic);
         addPropertyIfNotNull(configBuilder, "retriable.restart.connector.wait.ms", retriableRestartConnectorWaitMs);
         addPropertyIfNotNull(configBuilder, "snapshot.delay.ms", snapshotDelayMs);
@@ -969,11 +1068,14 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
         addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
         addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
         addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+        addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
         addPropertyIfNotNull(configBuilder, "database.history.skip.unparseable.ddl", databaseHistorySkipUnparseableDdl);
         addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
+        addPropertyIfNotNull(configBuilder, "incremental.snapshot.option.recompile", incrementalSnapshotOptionRecompile);
         addPropertyIfNotNull(configBuilder, "snapshot.include.collection.list", snapshotIncludeCollectionList);
         addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
         addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+        addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
         addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
         addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
         addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json b/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
index 52a47d2..b41d07b 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
@@ -63,9 +63,14 @@
     "datatypePropagateSourceType": { "kind": "property", "displayName": "Datatype Propagate Source Type", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of re [...]
     "decimalHandlingMode": { "kind": "property", "displayName": "Decimal Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIMA [...]
     "eventProcessingFailureHandlingMode": { "kind": "property", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "desc [...]
+    "heartbeatActionQuery": { "kind": "property", "displayName": "Heartbeat Action Query", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
     "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-se [...]
     "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "T [...]
     "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should  [...]
+    "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector pars [...]
+    "incrementalSnapshotAllowSchemaChanges": { "kind": "property", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
+    "incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size [...]
+    "incrementalSnapshotOptionRecompile": { "kind": "property", "displayName": "Incremental Snapshot Option Recompile", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description":  [...]
     "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Def [...]
     "maxIterationTransactions": { "kind": "property", "displayName": "Max Iteration Transactions", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property can be used to [...]
     "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read  [...]
@@ -94,7 +99,8 @@
     "tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (depreca [...]
     "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and times [...]
-    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should [...]
+    "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description" [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the s [...]
@@ -139,9 +145,14 @@
     "datatypePropagateSourceType": { "kind": "parameter", "displayName": "Datatype Propagate Source Type", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of r [...]
     "decimalHandlingMode": { "kind": "parameter", "displayName": "Decimal Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIM [...]
     "eventProcessingFailureHandlingMode": { "kind": "parameter", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "des [...]
+    "heartbeatActionQuery": { "kind": "parameter", "displayName": "Heartbeat Action Query", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
     "heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-s [...]
     "heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": " [...]
     "includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should [...]
+    "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector par [...]
+    "incrementalSnapshotAllowSchemaChanges": { "kind": "parameter", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descri [...]
+    "incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum siz [...]
+    "incrementalSnapshotOptionRecompile": { "kind": "parameter", "displayName": "Incremental Snapshot Option Recompile", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": [...]
     "maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. De [...]
     "maxIterationTransactions": { "kind": "parameter", "displayName": "Max Iteration Transactions", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property can be used t [...]
     "maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read [...]
@@ -170,6 +181,7 @@
     "tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
     "tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprec [...]
     "timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and time [...]
-    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations shoul [...]
+    "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations shoul [...]
+    "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description [...]
   }
 }
diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
index b06accc..c18f302 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
@@ -106,6 +106,10 @@ This should correctly be done with `steps` as child of `from`:
 
 The JBang app that was previously named `CamelJBang` is now named `camel`. It is still possible to use the older name by installing it using `CamelJBang@apache/camel` but this approach is deprecated and should not be used in the future.
 
+=== camel-debezium
+
+Upgraded to Debezium 1.8 which requires Java 11 and Kafka Client 3.0 JARs.
+
 === camel-cdi
 
 The legacy XML in `camel-cdi` with `<camelContext>` is deprecated, instead the XML DSL route loader should be used.
diff --git a/parent/pom.xml b/parent/pom.xml
index 12f7d69..9d483b9 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -162,7 +162,7 @@
         <docker-java-version>3.2.12</docker-java-version>
         <dozer-version>6.5.2</dozer-version>
         <dropbox-version>3.2.0</dropbox-version>
-        <debezium-version>1.7.1.Final</debezium-version>
+        <debezium-version>1.8.0.Final</debezium-version>
         <debezium-mysql-connector-version>8.0.27</debezium-mysql-connector-version>
         <eddsa-version>0.3.0</eddsa-version>
         <egit-github-core-version>2.1.5</egit-github-core-version>