Release Notes for Red Hat build of Debezium 3.4.3
What's new in Red Hat build of Debezium
Abstract
Chapter 1. Debezium 3.4.3 release notes Copy linkLink copied to clipboard!
Debezium is a distributed change data capture platform that captures row-level changes that occur in database tables and then passes corresponding change event records to Apache Kafka topics. Applications can read these change event streams and access the change events in the order in which they occurred.
Debezium is built on Apache Kafka and is deployed and integrated with Streams for Apache Kafka on OpenShift Container Platform or on Red Hat Enterprise Linux.
The following topics provide release details:
- Section 1.1, “Debezium database connectors”
- Section 1.3, “Debezium supported configurations”
- Section 1.4, “Debezium installation options”
- Section 1.5, “Debezium 3.4.3 features and improvements”
- Section 1.6, “Breaking changes”
- Section 1.7, “General availability features”
- Section 1.8, “Technology Preview features”
- Section 1.9, “Developer Preview features”
- Section 1.10, “Deprecated features”
- Section 1.11, “Known problems and limitations”
- Section 1.12, “Fixed issues”
1.1. Debezium database connectors Copy linkLink copied to clipboard!
Debezium provides source connectors and sink connectors that are based on Kafka Connect. Connectors are available for the following common databases:
- Source connectors
- Db2
- Informix (Developer Preview)
- MariaDB
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Sink connectors
- JDBC sink connector
- MongoDB sink connector (Developer Preview)
1.2. Connector usage notes Copy linkLink copied to clipboard!
- Db2
-
The Debezium Db2 connector does not include the Db2 JDBC driver (
jcc-11.5.0.0.jar). See the Db2 connector deployment instructions for information about how to deploy the necessary JDBC driver. - The Db2 connector requires the use of the abstract syntax notation (ASN) libraries, which are available as a standard part of Db2 for Linux.
- To use the ASN libraries, you must have a license for IBM InfoSphere Data Replication (IIDR). You do not have to install IIDR to use the libraries.
-
The Debezium Db2 connector does not include the Db2 JDBC driver (
- Informix
- The Debezium Informix connector does not include the Informix JDBC driver and Change Stream client that Debezium requires to connect to a Informix database. See the Informix connector deployment instructions for information about how to obtain the necessary components.
- Oracle
-
The Debezium Oracle connector does not include the Oracle JDBC driver (
21.15.0.0). See the Oracle connector deployment instructions for information about how to deploy the necessary JDBC driver.
-
The Debezium Oracle connector does not include the Oracle JDBC driver (
- PostgreSQL
-
To use the Debezium PostgreSQL connector you must use the
pgoutputlogical decoding output plug-in, which is the default for PostgreSQL versions 10 and later.
-
To use the Debezium PostgreSQL connector you must use the
1.3. Debezium supported configurations Copy linkLink copied to clipboard!
For information about Debezium supported configurations, including information about supported database versions, see the Debezium 3.4.3 Supported configurations page.
1.4. Debezium installation options Copy linkLink copied to clipboard!
You can install Debezium with Streams for Apache Kafka on OpenShift or on Red Hat Enterprise Linux:
1.5. Debezium 3.4.3 features and improvements Copy linkLink copied to clipboard!
Because this patch release closely follows earlier 3.2 releases, these notes incorporate information from those releases.
Information about release features is presented in the following sections:
1.6. Breaking changes Copy linkLink copied to clipboard!
Breaking changes represent significant differences in Debezium behavior or require configuration changes that are not compatible with earlier Debezium versions. The following list includes new breaking changes, as well as changes that were introduced in Debezium 3.2.7.
1.6.1. Breaking changes relevant to all users Copy linkLink copied to clipboard!
The following breaking changes apply to all connectors:
- Deprecated snapshot modes removed
The
schema_only_recoveryandschema_onlysnapshot modes have been removed. In place of those options, use therecoveryandno_datasnapshot modes.
- Java 17 is required
- All Debezium connectors require a runtime baseline of Java 17.
- If you use Java 11 with new connectors, Kafka Connect silently fails to find the connector. The connector does not report any bytecode errors
- To run Debezium Server, a runtime baseline of Java 21 is required.
- Kafka 4.1.0 and 4.1.1 support
Debezium is now built and tested using Apache Kafka 4.1.0 and 4.1.1
For details about compatibility between Debezium, Streams for Apache Kafka, and Kafka, check the Debezium supported configurations document.
- Transition to GitHub Issues to report bugs and request enhancements
Beginning with this release, Debezium is transitioning away from using Jira to report bugs and request features or enhancements. The existng Jira instance will remain available for a period, in read-only mode, but it is scheduled to be retired in the near future.
You should now submit all bug reports and enhancement requests, including feedback on the documentation, to the Debezium Issues page at https://github.com/debezium/dbz/issues.
1.6.2. Db2 connector breaking changes Copy linkLink copied to clipboard!
- Removal of
when_neededsnapshot mode for the Db2 connector Due to problems that the Db2 connector experienced when attempting to validate offsets, the
when_neededsnapshot mode is removed in this release. If thesnapshot.modein your connector configuration is set to use this option, edit the configuration to specify a different mode. For more information, see Known problems and limitations.
1.6.3. JDBC sink connector breaking changes Copy linkLink copied to clipboard!
- Data type precision changes
- Upgrade to Hibernate 7.1.0.Final results in greater data type precision. Time and timestamp columns now default to 9-digit precision instead of 6-digit. Only new columns use the new precision; existing columns are unaffected.
1.6.4. Oracle connector breaking changes Copy linkLink copied to clipboard!
- XML dependencies included by default
- The XDB and XMLParserV2 libraries are now included in the connector distribution by default, simplifying XML column type capture.
1.6.5. PostgreSQL connector breaking changes Copy linkLink copied to clipboard!
- PostgreSQL 13 support ended
PostgreSQL 13 is no longer tested or supported.
- LSN flush strategy configuration changed
-
New
lsn.flush.modeconfiguration option replaces the deprecatedflush.lsn.sourceproperty. For more information, see the PostgreSQL Technology Preview notes.
1.6.5.1. SQL Server connector breaking changes Copy linkLink copied to clipboard!
- Default query mode changed
The default value for
data.query.modechanged fromfunctiontodirectfor more efficient query execution. Set tofunctionto restore old behavior.
1.7. General availability features Copy linkLink copied to clipboard!
This release includes several features that are now generally available and fully supported. Most of the entries in this section refer to features that were previously introduced in earlier 3.2 releases.
For a complete list of Jira issues related to the release, see the Debezium 3.4.3 Enhancement Advisory (Errata document, RHSA-2026:162157-01).
Debezium 3.4.3 provides General Availability features for the following connectors:
- Section 1.7.1, “GA features that apply to all source connectors”
- Section 1.7.2, “JDBC sink connector GA features”
- Section 1.7.3, “Oracle connector GA features”
- Section 1.7.4, “PostgreSQL connector GA features”
- Section 1.7.5.1, “Post processor and single message transformation (SMT) GA features”
- Section 1.7.6, “Features promoted to General Availability in 3.2.7”
1.7.1. GA features that apply to all source connectors Copy linkLink copied to clipboard!
- Exactly-Once Semantics
Support for exactly-once semantics for all core connectors (MariaDB, MongoDB, MySQL, Oracle, PostgreSQL, SQL Server), ensuring events are delivered and written to Kafka topics only once.
- Disable context headers
New
extended.headers.enabledconfiguration option can be set tofalseto disable OpenLineage context headers, and help to minimize event payloads.- Large schema memory guards
New
guardrail.collections.maxandguardrail.collections.limit.actionconfiguration options prevent OutOfMemoryError issues in environments that process hundreds to thousands of tables.- Timezone conversion for source fields
The
ConvertTimezoneSMT now supports convertingts_ms,ts_us, andts_nsfields from the source information block.
1.7.2. JDBC sink connector GA features Copy linkLink copied to clipboard!
- Database exception retry
The connector now automatically retries SQL exceptions during change processing, providing resilience for transient issues like lock conflicts in multi-task environments.
- Geometry data type support in JDBC sink
Debezium source connectors support for various geometry and geography column types. To serialize these types, source connectors use custom Debezium logical types that are based on the
Structsemantic type in Kafka. This is a complex field type that Debezium uses to encode both Well-Known Binary (WKB) and Extended Well-Known Binary) (EWKB) byte arrays along with the spatial reference identifier or SRID.When you pair the Debezium JDBC sink with a source connector, the JDBC sink connector can convert geometry column values to the format required by the target database, if it supports such column types. This feature requires no special configuration.
For more information about how the connector maps geometry types from source databases to sink databases, see the JDBC connector documentation in the {NameDebeziumUserGuide].
- Passthrough collection naming strategy
-
The
io.debezium.sink.naming.PassthroughCollectionNamingStrategyuses the event topic name directly as the target table name without sanitization. DBZ-9679 - JDBC Collection and field name transformations
- FieldNameTransformation
-
The JDBC sink transformation
FieldNameTransformationmodifies the case of column or field names in the payload of a change event record. The change is applied before the event is consumed by the target system. You can use the transformation to modify the case of the column name and to add a prefix or suffix to the name. Naming styles: default, UPPER_CASE, lower_case, snake_case, camelCase, kebab-case - CollectionNameTransformation
-
The JDBC sink transformation
CollectionNameTransformationchanges the case of the topic name in a change event record before the target system consumes the record. You can use the SMT to change the case of the name and to add a prefix or suffix. The transformation supposrts the same naming style options as the field name transformation.
For more information about both transformations, see Transformations that alter topic names in the JDBC connector documentation.
- Support for MariaDB vector data types
MariaDB 11.7 introduced the VECTOR(n) data type, so that the relational database can store values as if it were a vector database. With the vector data type, the database can store and search for Vector values that are generated by an AI model.
In this release, the Debezium provides support for processing the MariaDB
VECTORdata type in the MariaDB source connector and in the JDBC sink connector when writing to a MariaDB target database For more information about how Debezium handles Vector types, see the Debezium MariaDB connector documentation.
1.7.3. Oracle connector GA features Copy linkLink copied to clipboard!
1.7.4. PostgreSQL connector GA features Copy linkLink copied to clipboard!
- Support for PostgreSQL 18
- This release supports use with a PostgreSQL 18 database.
- Support for PostgreSQL TSVECTOR data types
Debezium processes PostgreSQL events that use the
tsvectordata type. The Debezium JDBC sink connector can writeTSVECTORvalues to PostgreSQL targets. For non-PostgreSQL sink databases, the connector writes to character-based columns.For more information see, Documentation for PostgreSQL connector
pgvectortypes.
1.7.5. SQL Server connector GA features Copy linkLink copied to clipboard!
- SQL Server connector is unable to resume incremental snapshot after restart
When an incremental snapshot was in progress for a SQL Server connector, if a rebalance or connector restart was triggered for any reason, the incremental snapshots would fail to resume after the connector restarted. This behavior was due to regression in the way that the connector handled offsets during incremental snapshots.
This issue is now fixed, and SQL Server users should now observe that if the connector restarts during an incremental snapshot, after a restart the snapshot resumes as intended.
1.7.5.1. Post processor and single message transformation (SMT) GA features Copy linkLink copied to clipboard!
- EWKB/WKB conversion SMT
The
GeometryFormatTransformersingle message transform (SMT) converts geometry values in change events betweenWKBandEWKBformat to ensure that target systems receive spatial data in the most compatible format.For more information, see the GeometryFormatTransformer SMT documentation in the Debezium User Guide.
- Geometry coordinate swap SMT
The
SwapGeometryCoordinatessingle message transformation (SMT) converts coordinate system data in a change event for compatibility between systems that use different conventions.For more information, see the
SwapGeometryCoordinatesdocumentation in the Debezium User Guide.
- Exactly-once delivery for PostgreSQL streaming (Technology Preview)
In this release, the Developer Preview of the exactly-once semantics for the PostgreSQL connector is promoted a Technology Preview. Exactly-once delivery for PostgreSQL applies only to the streaming phase; exactly-once delivery does not apply to snapshots.
Debezium was designed to provide at-least-once delivery with a goal of ensuring that connectors capture all change events that occur in the monitored sources. In KIP-618 the Apache Kafka community proposes a solution to address problems that occur when a producer retries a message. Source connectors sometimes resend batches of events to the Kafka broker, even after the broker previously committed the batch. This situation can result in duplicate events being sent to consumers (sink connectors), which can cause problems for consumers that do not handle duplicates easily.
No connector configuration changes are required to enable exactly-once delivery. However, exactly-once delivery must be configured in your Kafka Connect worker configuration. For information about setting the required Kafka Connect configuration properties, see KIP-618.
NoteTo set
exactly.once.supporttorequiredin the Kafka worker configuration, all connectors in the Kafka Connect cluster must supports exactly-once delivery, If you attempt to set this option in a cluster in which workers do not consistently support exactly-once delivery, the connectors that do not support this feature fail validation at start-up.
1.7.6. Features promoted to General Availability in 3.2.7 Copy linkLink copied to clipboard!
The following features are promoted to General Availability (GA) in the Debezium 3.4.3 release.
1.7.6.1. Informix connector features promoted to GA Copy linkLink copied to clipboard!
- Informix source connector
In this release, the Debezium source connector for Informix is available for General Availability.
The Debezium Informix source connector captures row-level changes from tables in an IBM Informix database. The connector is based on the Debezium Db2 connector, and uses the Informix Change Data Capture API for Java to capture transactional data. This API captures data from the current logical log and processes transactions sequentially.
The connector is compatible with Informix Database 12 and 14, and with version 4.50.11 of the Informix JDBC driver.
ImportantDue to licensing requirements, the Debezium Informix connector archive does not include the Informix JDBC driver or the Change Stream client that Debezium requires to connect to an Informix database. Before you can use the connector, you must obtain the driver and the client library and add them to your connector environment.
Prerequisites
- A database administrator must enable full row logging for the database and otherwise prepare the database and the database server for using the Change Data Capture API.
- You have a copy of the Informix JDBC driver in your connector environment. The driver is available from Maven Central.
-
You have installed the Informix Change Streams API for Java.
The Change Streams API for Java is packaged as part of the Informix JDBC installation, and is also available on Maven Central alongside the latest JDBC drivers. The API is required to enable CDC on the database.
1.7.6.2. MongoDB connector features promoted to GA Copy linkLink copied to clipboard!
- MongoDB source connector collection-scoped streaming (Technology Preview)
This feature is promoted from Developer Preview to Technology Preview.
In previous versions of the Debezium MongoDB source connector, change streams could be opened against the deployment and database scopes, which was not always ideal for restrictive permission environments. Debezium 3.4.3 introduces a new change stream mode in which the connector operates within the scope of a single collection only, allowing for such granular permissive configurations.
To limit the capture scope of a MongoDB connector to a specific collection, set the value of the
capture.scopeproperty in the connector configuration tocollection. Use this setting when you intend for a connector to capture changes only from a single MongoDB collection.The following limitation applies to the use of this feature:
-
If you set the value of the
capture.scopeproperty tocollection, the connector cannot use the defaultsourcesignaling channel. Enabling thesourcechannel for a connector is required to permit processing of incremental snapshot signals, including signals sent via the Kafka, JMX, or File channels. Thus, if you set the value of thecapture-scopeproperty in the connector configuration tocollection, the connector cannot perform incremental snapshots.
-
If you set the value of the
1.7.6.3. Oracle connector features promoted to GA Copy linkLink copied to clipboard!
- Oracle connector unbuffered LogMiner adapter
In this release, when you configure the Oracle connector to use the native Oracle LogMiner API to read and stream changes from database transaction logs, you can specify that the connector streams committed changes only. In this committed changes mode, the connector forwards change event records immediately to destination topics without first buffering them. Because the connector does not maintain an internal transaction buffer, it requires less connector memory than the default buffered
logminersetting. However the source database experiences a corresponding increase in its processing load and memory requirements. To set this option, assign the valuelogminer_unbufferedto the Oracle connector property,database.connection.adapter.
- Use of the Oracle connector XStream adapter to ingest database changes
By default, the Debezium Oracle connector uses an adapter that connects to the native Oracle LogMiner utility to retrieve data from the redo logs. In database environments that support XStream, you can instead configure the connector to ingest change events through the Oracle XStream API.
For information about configuring Debezium to use the Oracle XStream adapter, see the Debezium Oracle connector documentation.
1.8. Technology Preview features Copy linkLink copied to clipboard!
This release includes several feature that are available for Technology Preview.
Items listed in this section include some features that were introduced in earlier releases and remain in Technology Preview. The following Technology Preview features are available in this release:
PostgreSQL connector LSN flush mode
Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend implementing any Technology Preview features in production environments. Technology Preview features provide early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.
- PostgreSQL connector flexible recovery for LSN desynchronization scenarios (Technology Preview)
The PostgreSQL connector introduces an extended flushing and recovery model to improve robustness when handling LSN desynchronization scenarios. The connector adds the new
lsn.flush.modeproperty, replacing the deprecatedflush.lsn.source.boolean. You can use this property to set the connector to follow one of several LSN flushing behaviors.To complement the available flush modes, you can set the
offset.mismatch.strategyproperty to specify one of several strategies that the connector to recover after the stored Kafka Connect offset and the PostgreSQL replication slot LSN divergeFor more information, see the documentation for the link:https://docs.redhat.com/documentation/en/red_hat_build_of_debezium/3.4.3/html-single/debezium_user_guide/index#postgresql-property-lsn-flush-mode [
lsn.flush.mode] andoffset.mismatch.strategyproperties in the PostgreSQL connector documentation.
- Change to the PostgreSQL LSN flush strategy configuration
The
lsn.flush.modeconfiguration property replaces the deprecatedflush.lsn.sourceproperty. The new option provides three modes:connector(default),manual, andconnector_and_driver. The Extended PostgreSQL flushing strategy refers to theconnector_and_drivermode for thelsn.flush.mode`property. This setting causes the keep-alive thread to flush LSNs (Log Sequence Numbers). The keep-alive LSN reflects all WAL activity, including unmonitored operations like `CHECKPOINT,VACUUM, orpg_switch_wal()that don’t produce logical replication change events. The enhanced flushing mechanism helps to prevent WAL growth on low-activity databases in which infrequent changes occur in monitored tables.For information about how to specify the method that the connector uses to flush the LSN (Log Sequence Number) to the PostgreSQL replication slot, see the documentation for the
lsn.flush.modeconfiguration property in the Debezium User Guide.
1.8.1. Previously available Technology Preview features Copy linkLink copied to clipboard!
In this release, the following features that were introduced in earlier releases remain in Technology Preview:
- CloudEvents converter (Technology Preview)
-
The CloudEvents converter emits change event records that conform to the CloudEvents specification. The CloudEvents change event envelope can be JSON or Avro and each envelope type supports JSON or Avro as the
dataformat. For more information, see CloudEvents converter.
- Custom converters (Technology Preview)
- In cases where the default data type conversions do not meet your needs, you can create custom converters to use with a connector. For more information, see Custom-developed converters.
- MongoDB sink connector (Technology Preview)
In this release, the the earlier MongoDB sink connector Developer Preview feature is promoted to Technology Preview. The Debezium MongoDB sink connector differs from other vendor implementations in that it can ingest raw change events emitted by Debezium connectors without first applying an event flattening transformation. The MongoDB sink connector can take advantage of native Debezium source connector features, such as column type propagation, enabling you to potentially reduce the processing footprint of your data pipeline, and simplify its configuration.
Unlike the JDBC sink relational connector that requires an additional plug-in to be installed to use it, the MongoDB sink connector is bundled alongside the MongoDB source connector in the same artifact. So if you install the Debezium 3.4.3 MongoDB source connector, you also have the MongoDB sink connector.
Minimal configuration is required to get started with the MongoDB sink connector, for example:
{ "connector.class": "io.debezium.connector.mongodb.MongoDbSinkConnector", "connection.string": "...", "topics": "topic1,topic2", "sink.database": "targetdb" }The following configuration properties are mandatory:
connection.stringProvides the details for connecting to the MongoDB sink database.
sink.databaseProvides the name of the target database where the changes will be written.
topicsSpecifies a comma-separated list of regular expressions that describe the topics from which the sink connector reads event records.
For more information, see the Debezium MongoDB sink connector documentation.
- Oracle connector use of XML data types (Technology Preview)
The Debezium Oracle connector can process the
XMLTypedata type that Oracle uses for handling XML data in the database.For information about the mappings that the connector uses for the Oracle XMLTYPE, see XML types in the connector documentation.
Additional resources
1.8.2. Features promoted from Developer Preview to Technology Preview in Debezium3.2.7 Copy linkLink copied to clipboard!
In this release the following features are promoted from Developer Preview to Technology Preview:
- OpenLineage integration
You can integrate Debezium with OpenLineage to track how data moves through the various systems, transformations, and processes in your data pipeline. The integration with OpenLineage maps events in your data pipeline to artifacts in the OpenLineage data model to provides visibility into where data originates, how it moves, and what dependencies exist in the data pipeline.
For more information about how to enable and configure the OpenLineage integration, see the OpenLineage integration documentation in the Debezium User Guide.
- OpenLineage integration for sink connectors
OpenLineage enables the capture of rich metadata from data pipelines. With this release, you can use the OpenLineage integration with the JDBC and MongoDB sink connectors.
- Oracle connector ingesting changes from a logical standby
The ability for the Oracle connector to capture changes from a logical standby continues to be available as a Developer Preview feature. When the Debezium connector for Oracle connects to a production or primary database, it uses an internal flush table to manage the flush cycles of the Oracle Log Writer Buffer (LGWR) process. The flush process requires that the user account through which the connector accesses the database has permission to create and write to this flush table. If stand-by database policies restrict data manipulation or prohibit write operations, the connector cannot write to the flush table.
To support an Oracle read-only logical stand-by database, Debezium introduces a property to disable the creation and management of the flush table. You can use this feature with both Oracle Standalone and Oracle RAC installations.
To enable the Oracle connector to use a read-only logical stand-by, add the following connector option:
internal.log.mining.read.only=trueFor more information, see the Oracle connector documentation in the Debezium User Guide.
1.9. Developer Preview features Copy linkLink copied to clipboard!
Debezium 3.4.3 includes several Developer Preview features. Items listed in this section include features that were introduced in earlier releases and remain in Developer Preview. The following Developer Preview features are available in this release:
Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview software for production or business-critical workloads. Developer Preview software provides early access to upcoming product software in advance of its possible inclusion in a Red Hat product offering. Customers can use this software to test functionality and provide feedback during the development process. This software might not have any documentation, is subject to change or removal at any time, and has received limited testing. Red Hat might provide ways to submit feedback on Developer Preview software without an associated SLA.
For more information about the support scope of Red Hat Developer Preview software, see Developer Preview Support Scope.
- Debezium AI embeddings SMT (Developer Preview)
To assist you in preparing unstructured text content for use in large language models, use the Debezium AI SMT to convert text captured by a connector into into a numeric representation. The SMT can use the following model providers to generate text embeddings:
- Hugging Face
- Ollama
- ONNX MiniLM
- Voyage AI
For more information about configuring and using the AI embeddings SMT, see the Debezium community documentation.
- Debezium Server (Developer Preview)
- This release continues to make the Debezium Server available as a Developer Preview feature. The Debezium Server is a ready-to-use application that streams change events from a data source directly to a configured Kafka or Redis data sink. Unlike the generally available Debezium connectors, the deployment of Debezium Server has no dependencies on Apache Kafka Connect. For more information about the Debezium Server Developer Preview, see the Debezium User Guide
- MySQL parallel schema snapshots (Developer Preview)
The ability to use parallel schema snapshots with the MySQL connector continues to be provided as a Developer Preview feature.
To improve snapshot performance, the MySQL connector implements parallelization to concurrently snapshot change events and generate schema events for tables. By running snapshots and generating schema events in parallel, the connector reduces the time required to capture the schema for many tables in your database.
- MariaDB and MySQL parallel initial snapshots (Developer Preview)
The Debezium initial snapshot for MySQL has always been single-threaded. This limitation primarily stems from the complexities of ensuring data consistency across multiple transactions.
In this release, you can configure a MySQL connector to use multiple threads to execute table-level snapshots in parallel.
In order to take advantage of this new feature, add the
snapshot.max.threadsproperty to the connector configuration, and set the property to a value greater than1.Example 1.1. Example configuration using parallel snapshots
snapshot.max.threads=4Based on the configuration in the preceding example, the connector can snapshot a maximum of four tables at once. If the number of tables to snapshot is greater than four, after a thread finishes processing one of the first four tables, it then finds the next table in the queue and begins to perform a snapshot. The process continues until the connector finishes performing snapshots on all of the designated tables.
For more information, see
snapshot.max.threadsin the Debezium User Guide.
- Debezium Quarkus extension (Developer Preview)
The Debezium Quarkus outbox extension assists Quarkus applications in implementing the outbox pattern to share data asynchronously among microservices. The extension works in parallel with a Debezium connector that is configured to use the Outbox Event router SMT to monitor the outbox table.
When an application processes a change that modifies a record in its database, the change triggers the Quarkus extension, which exports a change data record that describes the event to an outbox table. The SMT that monitors the outbox table detects the change, and routes the change event message to a configured Kafka topic. Other microservices in the environment can then consume event messages asynchronously from Kafka, and process the event data as input.
For more information about how to configure and use the Quarkus outbox extension, see the Debezium community documentation.
- Web assembly scripting support (TinyGo) (Developer Preview)
Beginning with this release, you can use the TinyGo implementation of the Go language to compile scripts for use in the content-based routing and filtering single message transformations. For more information see the documentation for the topic routing and filtering SMTs.
1.10. Deprecated features Copy linkLink copied to clipboard!
The following features are deprecated and will be removed in a future release:
- flush.lsn.source deprecated
-
The
flush.lsn.sourceconfiguration property is deprecated and replaced bylsn.flush.mode. The property is scheduled for removal in a future release. (DBZ-9641)
- Deprecation of schema_only and schema_only_recovery snapshot modes
The following snapshot modes are scheduled for removal:
-
The
schema_only_recoverymode is deprecated and is replaced by therecoverymode. The
schema_onlymode is deprecated and is replaced by theno_datamode.ImportantThe current release continues to include the deprecated snapshot modes, but they are scheduled for removal in a future release. To prepare for their removal, adjust any scripts, configurations, and processes that depend on these deprecated modes.
For information about features that were deprecated in the previous release, see the 3.2.7 Release Notes
-
The
1.11. Known problems and limitations Copy linkLink copied to clipboard!
The following known issues are present in Debezium 3.4.3:
- Db2 connector removal of
when_neededsnapshot mode due to unreliable offset position validation In recent releases, the Db2 connector was unable to reliably validate its offset position at startup, which could result in connector failures. In this release, the connector’s ability to validate its offset position is removed temporarily to prevent unnecessary failures. Due to this removal, the
when_neededsnapshot mode for the Db2 connector was also removed and is currently unavailable. A solution to the problem is under investigation.- SQL Server connector fails to resume incremental snapshot after a restart
If the connector restarts, or if a re-balance occurs while an incremental snapshot is in progress, the snapshot process ends and cannot be resumed. If you examine the offsets after the failure, you’ll find that during the snapshot the connector does not consistently record offsets, with some offset commits omittng information about the tables to snapshot. The absent table information prevents the connector from resuming the snapshot.
To recover from the failure, perform a full re-snapshot of the affected tables. Afterwards, you can restart your incremental snapshot for all tables.
NoteRunning a full initial snapshot can be time-consuming and place a significant load on the source database, especially if the database contains large tables. If you do not need to capture all of the existing historical data, you can reduce the load on the database by setting the
snapshot.modein the connector configuration tono_data. When you apply this setting, the resulting snapshot does not copy the existing table contents. Instead, the connector reads the table schemas, and then transitions to streaming, capturing only those changes that occur in the source data after streaming begins.
- SQL-based connectors experience parallel initial snapshot exception when snapshot for one table is slow
In some environments, failures can occur when a SQL-based connector is configured to run parallel initial snapshots. This occurs because the time required to complete a snapshot for one table is significantly greater than the time required to complete snapshots for other tables. As a result, the threads for the completed snapshots remain idle for an extended interval, so that the connector is unable to gracefully close the connection. The inability to close the connection can result in an incomplete snapshot, even if all data is sent successfully. Environments are more susceptible to this problem if they include a network device that terminates idle connections to the database, such as a load balancer or firewall.
If you experience this problem, revert the value ofsnapshot.max.threadsto1.- MariaDB connector reports negative binlog position values
A new binary log format was introduced in MariaDB 11.4. Debezium cannot consume events in this new format. If Debezium connects to a database that runs MariaDB 11.4 or later, you must set the MariaDB server variable
binlog_legacy_event_posto1(ON) to ensure that the connector can consume events in the new format. If you leave this variable at its default setting (0, or OFF), after a connector restart, Debezium might not be able to find the resume point.- Apicurio registry endless rebalance loop on Kafka
- For more information, see Apicurio registry 2.4.3 and 2.4.4 causes endless rebalance loop on Kafka
1.12. Fixed issues Copy linkLink copied to clipboard!
The following issues that were identified in earlier releases are now fixed:
- Fixed issues that affect all connectors
- Data loss after failed ad-hoc blocking snapshots
Streaming position now preserved when snapshot fails, ensuring zero data loss regardless of when or why the snapshot encounters issues.
- Connector startup cryptic error
Fixed misleading "Invalid value: null used for required field" error message during startup when offset attributes aren’t populated yet.
- Heartbeat emission regression
Fixed constant heartbeat emission when using
heartbeat.action.query, now honors configuredheartbeat.interval.ms.- JdbcSchemaHistory data sharding
Fixed handling of data sharding when recovering records.
- Incremental snapshot offset loading
Fixed failure to load incremental snapshot offset on task restart.
- Context headers duplication
Fixed context headers being added twice during incremental snapshot.
- Informix connector fixed issues
- OpenLineage initialization
Fixed IllegalStateException when
openlineage.integration.enabledis set tofalse.- Resource cleanup
Fixed NullPointerException and improved
unwatchTablehandling during connector shutdown.
- JDBC sink connector fixed issues
- Field name transformation
Fixed
FieldNameTransformationnot applying case conversion to all field names in payload.- MariaDB JSON insertion
Fixed failure to insert JSON data into MariaDB.
- Multi-task CREATE TABLE collisions
Fixed task crashes due to CREATE TABLE collisions when using multiple tasks with PostgreSQL target.
- MySQL cluster offset store
Fixed primary key requirement when connecting JDBC offset store to MySQL cluster.
- MariaDB connector fixed issues
- MongoDB connector fixed issues
- ExtractNewDocumentState crash
Fixed crash with nested struct in array.
- Incremental snapshot conditions
Fixed incremental snapshot not honoring additional conditions.
- Whitespace in collection.include.list
Fixed incorrect regex pattern when
collection.include.listcontains whitespace.- Parallel snapshot metadata
Fixed thread-safety issue causing incorrect
source.collectionmetadata during parallel snapshot.- Null reference exception
Fixed connector throwing null reference exception.
- MySQL connector fixed issues
- Multiple DDL parsing fixes
Fixed failures to parse CREATE TABLE statements, backtick in column names, and implicit nullability in ALTER TABLE.
- Event header NullPointerException
Fixed NullPointerException when getting event header.
- GTIDSet subtraction failures
Fixed
MySQLGTIDSetsubtractions failing on UUIDSet that exists only in left operand.- Charset handling
Fixed new charset not taken into account.
- Oracle connector fixed issues
- LONG column binding
- Fixed ability to bind LONG values only for insert into LONG column.
- REVOKE FLASHBACK
Fixed connector stopping on
REVOKE FLASHBACKoperation.- Large CLOB/BLOB support
Fixed handling of large CLOB and BLOB values.
- Multiple DDL parsing fixes
Fixed parser exceptions for DROP MATERIALIZED, PARALLEL keyword, WITH clause, partition operations, ROW ARCHIVAL, and AUTOMATIC keyword.
- Reselect exceptions
Fixed exception handling for ORA-01555 and ORA-22924 errors during reselect operations.
- XStream low watermark
Fixed invalid low watermark flush in XStream implementation.
- Primary key drop
Fixed relational metadata not updating when primary key is dropped.
- Mining session restarts
Fixed too frequent mining session restarts.
- Database version parsing
Fixed failure to parse Oracle database version.
- Low watermark calculation
Fixed too conservative low watermark read calculation when
lob.enabledisfalse, restoring performance.- Minimum Cache SCN not recalculated after transaction abandonment
Before this update, when the connector used buffered event sources, it failed to recalculate the minimum cache System Change Number (SCN) after it applied transaction retention policies to abandon old transactions. This could result in the connector maintaining stale or incorrect cache metrics. With this update, the connector explicitly recalculates the
minCacheScnimmediately after abandoning transactions, ensuring the cache state remains accurate.DBZ-9659(DBZ-9659)
- PDB name lowercase
Fixed not collecting DML operations when PDB name is in lowercase.
- Log mining lower boundary
Fixed lower boundary not updating until log switch.
- Optional key fields
Fixed incorrectly building on-demand table schema with optional key fields.
- Numeric default values
Fixed numeric default values wrapped in parentheses mistakenly treated as expressions.
- ORA-00310 with RAC
Fixed ORA-00310 exception with RAC and archive log only mode.
- XMLType text storage
Fixed parser failure for
XMLTypecolumns using non-binary (CLOB or object-relational) storage models.- ROW ARCHIVAL DML parsing
Fixed DML parsing after snapshot on tables with ROW ARCHIVAL enabled.
- PostgreSQL connector fixed issues
- Duplicate key exception
Fixed duplicate key exception when using
pgoutputplugin.- Excessive thread creation
Fixed excessive thread creation in LSN flush operations.
- Timestamp NPE on JDK23+
Fixed NullPointerException for timestamp values on JDK23+.
- Case-sensitive duplicate columns
Fixed IndexOutOfBoundsException for tables with case-sensitive duplicate column names.
- Multibyte UTF-8 corruption
-
Fixed
PgOutputMessageDecodercorrupting multibyte UTF-8 table and column names during CDC streaming.
- SQL Server connector
- Debezium Server
- HTTP sink header duplication
- Fixed HTTP sink headers duplicating infinitely per message since version 3.2.
- NPE during HTTP sink
Fixed NullPointerException during sending to HTTP sink.