Skip to content

Commit f9e6632

Browse files
committed
3.5.0.Alpha1 announcement
Signed-off-by: Chris Cranford <chris@hibernate.org>
1 parent a2f0a42 commit f9e6632

2 files changed

Lines changed: 248 additions & 1 deletion

File tree

_data/releases/3.5/3.5.0.Alpha1.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ date: 2026-01-20
22
version: "3.5.0.Alpha1"
33
stable: false
44
summary: Debezium Quarkus Extension supports Db2; Debezium Quarkus extensions were relocated into a separate project; JBang catalog for Debezium Quarkus Extensions; Bounded query mode for Db2 connector
5-
# announcement_url:
5+
announcement_url: /blog/2026/01/20/debezium-3-5-alpha1-released/
Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
---
2+
layout: post
3+
title: Debezium 3.5.0.Alpha1 Released
4+
date: 2026-01-20
5+
tags: [ releases, mongodb, mysql, mariadb, postgres, sqlserver, cassandra, oracle, db2, vitess, outbox, spanner, jdbc, informix, ibmi, cockroachdb ]
6+
author: ccranfor
7+
extraClasses: release-v2
8+
---
9+
10+
+++<!-- more -->+++
11+
12+
[id="new-features-and-improvements"]
13+
== New features and improvements
14+
15+
=== Debezium for Db2
16+
17+
==== Control maximum timespan for change query
18+
19+
When reading the changes in a very active database with a large numbers of records, this can trigger query-resource limits such as CPU time.
20+
This can lead to the query being terminated prematurely, leading to a connector crash.
21+
22+
To address this concern, Debezium's Db2 connector introduces a new `straeming.query.timestamp.seconds` configuration property.
23+
The default of `0` does not apply any timestamp restriction on the query, so it will continue to operate as it does today.
24+
So for most users, this is a net-zero change (https://github.com/debezium/dbz/issues/1466[debezium/dbz#1466]).
25+
26+
For environments where query-resource limits are an issue, setting this value to anything greater than `1` specifies the maximum number of seconds for a streaming query to include changes for, noting that a value of `1` is not permitted.
27+
It's recommended for most environments that require this behavior to start with `120` seconds and adjust as needed.
28+
29+
=== Debezium for MySQL
30+
31+
==== No longer fails for `zero-year` dates
32+
33+
MySQL can be configured to support the storage of dates using zero year format, e.g. `0000-07-15`.
34+
When such values are stored in the database, the MySQL Binlog Client will fail with an invalid date/time exception, which will block the connector from consuming further changes.
35+
36+
Debezium will now allow zero-year values at the Binlog Client level to be passed to the Debezium MySQL connector without issue (https://github.com/debezium/dbz/issues/1499[debezium/dbz#1499]).
37+
38+
=== Debezium for Oracle
39+
40+
==== Dynamic Archive Destination Support
41+
42+
When an Oracle primary server fails over to a standby server, it's very likely that Debezium has not read all the changes from the transaction logs on the primary when the failover occurs.
43+
As a result, when the standby is promoted to the primary, it will begin to write changes to a new archive destination.
44+
45+
When Debezium reconnects to the newly promoted primary, Debezium will attempt to locate where it left off, and fail to start.
46+
This failure to start issue is a result of the fact that the primary changes that were not consumed by Debezium exist in the archive destination specific to the standby system being in standby-mode, not primary-mode.
47+
48+
To solve this issue, the `archive.destination.name` configuration property can be supplied a series of comma-separated archive destination names.
49+
When multiple names are supplied, Debezium will gather logs across all configured destinations and perform a deduplication pass by redo thread and log sequence pairs.
50+
This deduplication pass will prefer logs in earlier destinations from logs in later destinations that have the same thread and sequence pair.
51+
52+
With this change, Debezium is significantly more fault-tolerant during a primary to standby failover and recovers without the need for a snapshot, as long as there is no data loss at the transaction log level between the two systems (https://github.com/debezium/dbz/issues/1246[debezium/dbz#1246]).
53+
54+
=== Debezium Quarkus Extensions
55+
56+
==== Extensions relocated
57+
58+
One of the biggest changes in Debezium 3.5 is the relocation of the Debezium Quarkus extensions, which includes both the connector and outbox extensions.
59+
All of Debezium's Quarkus-related modules are now found in the https://github.com/debezium/debezium-quarkus[Debezium Quarkus] repository.
60+
61+
[IMPORTANT]
62+
====
63+
All artifacts previously released in Debezium 3.4 using the `quarkus-debezium-XYZ` naming convention have been renamed.
64+
Please be sure to update your dependencies to reflect the artifacts named as `debezium-quarkus-XYZ`.
65+
The dependency `groupId` was unchanged.
66+
====
67+
68+
[NOTE]
69+
====
70+
In a future build, the Debezium Quarkus Extensions will be unbundled from the main Debezium release pipeline, and instead will be released with a similar cadence to the upstream https://quarkus.io[Quarkus] project.
71+
This will provide an improved parity between extension changes and Quarkus releases.
72+
====
73+
74+
==== Support for Db2
75+
76+
The Debezium Quarkus extensions also now include an implementation for Debezium's Db2 connector (https://github.com/debezium/dbz/issues/1447[debezium/dbz#1447]).
77+
In a Quarkus application that uses Db2, developers can now respond to real-time changes by simply including the new Db2 module:
78+
79+
.Debezium Db2 extension maven coordinates
80+
[source,xml]
81+
----
82+
<dependency>
83+
<groupId>io.debezium.quarkus</groupId>
84+
<artifactId>debezium-quarkus-db2</artifactId>
85+
<version>v3.5.0.Alpha1</version>
86+
</dependency>
87+
----
88+
89+
==== JBang Support
90+
91+
Debezium introduces JBang support by introducing an easy way to integrate Debezium's Quarkus extensions (https://github.com/debezium/dbz/issues/1464[debezium/dbz#1464]).
92+
This support requires Java 21 or later, JBang 0.132.1 or later, and a containerized environment for local services.
93+
94+
To get started quickly, the https://github.com/debezium/jbang-catalog[Debezium JBang catalog] needs to be added:
95+
96+
.Install the Debezium Jbang catalog
97+
[source,bash]
98+
----
99+
jbang catalog add debezium
100+
----
101+
102+
The next step is to download a template for a given datasource, like postgres:
103+
104+
.Creates the debezium.java using the JBang Debezium template for PostgreSQL
105+
[source,bash]
106+
----
107+
jbang init -t capturing:postgres@debezium debezium.java
108+
----
109+
110+
There are templates available for the following data sources: `postgres`, `mysql`, `mongodb`, `sqlserver`, `mariadb`.
111+
There will be additional data sources added over time.
112+
113+
=== Debezium Platform
114+
115+
==== Support for HTTPS-based URLs
116+
117+
Users who may be using HTTPS via Traefik, ALB, or similar tooling, the current Helm chart setup lead to a series of errors when using secure connections.
118+
To provide TLS-based connectivity, the following configuration options were introduced (https://github.com/debezium/dbz/issues/36[debezium/dbz#36]):
119+
120+
.New Helm charts configuration properties
121+
[cols="30%,70%,20%"]
122+
|===
123+
|Property |Description |Default
124+
125+
|`domain.name`
126+
|Represents the domain used as ingress host
127+
|`""`
128+
129+
|`domain.url`
130+
|Deprecated, replaced by `domain.name`
131+
|`""`
132+
133+
|`ingress.enabled`
134+
|Enable ingress resource for conductor/stage
135+
|`true`
136+
137+
|`ingress.className`
138+
|Optional ingress class name
139+
|`"""`
140+
141+
|`ingress.annotations`
142+
|Extra ingress annotations
143+
|`{}`
144+
145+
|`ingress.tls.enabled`
146+
|Enable TLS section on ingress
147+
|`false`
148+
149+
|`ingress.tls.secretName`
150+
|Secret name used when TLS is enabled
151+
|`""`
152+
153+
|===
154+
155+
=== Debezium Server
156+
157+
==== Jetstream retries on failures
158+
159+
Currently, when Debezium Server publishes to NATS and the queue is full due to some limitations like message or byte limits, Debezium Server currently throws an exception and terminates.
160+
In order to make integration with NATs more fault tolerant, the following additional configuration options have been introduced, allowing the Jetstream NATS adapter to handle retries natively (https://github.com/debezium/dbz/issues/1494[debezium/dbz#1494]):
161+
162+
.New configuration property for NATS Jetstream adapter
163+
[cols="30%,70%,20%"]
164+
|===
165+
|Property |Description |Default
166+
167+
|`sync.retries`
168+
|Specifies the number of retries
169+
|`5`
170+
171+
|`sync.retry.interval.ms`
172+
|The number of milliseconds to wait between retries.
173+
|`1000`
174+
175+
|`sync.retry.max.interval.ms`
176+
|The maximum number of milliseconds to wait between retries.
177+
|`60000`
178+
179+
|`sync.retry.backoff.multiplier`
180+
|The back-off multiplier to scale the retry interval over attempts.
181+
|`2.0`
182+
183+
|===
184+
185+
[NOTE]
186+
====
187+
All configuration options should be prefixed with `debezium.sink.nats-jetstream`.
188+
====
189+
190+
[id="other-changes"]
191+
== Other changes
192+
193+
* Recovery private redo threads can lead to LogMiner failures https://github.com/debezium/dbz/issues/40[debezium/dbz#40]
194+
* On adding "Signalling collection name" in the Form editor it should by preserved in the smart editor [DBZ-9080] https://github.com/debezium/dbz/issues/1226[debezium/dbz#1226]
195+
* Update Debezium Platform doc with recent features [DBZ-9319] https://github.com/debezium/dbz/issues/1381[debezium/dbz#1381]
196+
* Platform: UI Bugs [DBZ-9559] https://github.com/debezium/dbz/issues/1416[debezium/dbz#1416]
197+
* Deleting pipeline does not work when pressing enter after typing name [DBZ-9687] https://github.com/debezium/dbz/issues/1436[debezium/dbz#1436]
198+
* Oracle connector fails when user creates a table with a column named "override" https://github.com/debezium/dbz/issues/1461[debezium/dbz#1461]
199+
* Debezium-Platform: Fix The grep notification feature in the pipeline logs https://github.com/debezium/dbz/issues/1465[debezium/dbz#1465]
200+
* remove unnecessary jbang main() https://github.com/debezium/dbz/issues/1467[debezium/dbz#1467]
201+
* introduce a factory for `io.debezium.runtime.Debezium` https://github.com/debezium/dbz/issues/1469[debezium/dbz#1469]
202+
* Debezium Server: HTTP sink, JWTAuthenticatorTests fail https://github.com/debezium/dbz/issues/1470[debezium/dbz#1470]
203+
* Debezium issue on connect to IBMi https://github.com/debezium/dbz/issues/1473[debezium/dbz#1473]
204+
* Oracle OLR adapter crashes with auto-commit error when encountering unknown tables https://github.com/debezium/dbz/issues/1480[debezium/dbz#1480]
205+
* Impossible to run docker image for testing purpose with `docker-maven-plugin` and docker API version > `1.44` https://github.com/debezium/dbz/issues/1481[debezium/dbz#1481]
206+
* Cassandra connector return wrong value for DATE columns https://github.com/debezium/dbz/issues/1486[debezium/dbz#1486]
207+
* RedisOffsetBackingStore: Race condition causes infinite NullPointerException loop on reconnect leading to unrecoverable state https://github.com/debezium/dbz/issues/1488[debezium/dbz#1488]
208+
* pg_stat_replication.flush_lsn can move backwards when lsn.flush.mode=connector_and_driver https://github.com/debezium/dbz/issues/1489[debezium/dbz#1489]
209+
* JDBC Sink Connector fails to insert JSON data into MariaDB https://github.com/debezium/dbz/issues/1492[debezium/dbz#1492]
210+
* Refactor OracleConnection auto-commit setup as an initial Operation https://github.com/debezium/dbz/issues/1496[debezium/dbz#1496]
211+
* Connector cannot handle uncompressed transaction payloads beyond 2GB https://github.com/debezium/dbz/issues/1503[debezium/dbz#1503]
212+
* MySQL: New charset not taken into account https://github.com/debezium/dbz/issues/1504[debezium/dbz#1504]
213+
* Debezium Platrform: Update the source and destination flow to get the connections details in smart editor. https://github.com/debezium/dbz/issues/1506[debezium/dbz#1506]
214+
* add `debezium-quarkus` project in `debezium-platform-conductor` pipeline https://github.com/debezium/dbz/issues/1507[debezium/dbz#1507]
215+
* Add debezium platform conductor into core CI https://github.com/debezium/dbz/issues/1520[debezium/dbz#1520]
216+
* DCO must be checked only on pull request https://github.com/debezium/dbz/issues/1524[debezium/dbz#1524]
217+
* ReselectPostProcessor does not account for CustomConverter(s) https://github.com/debezium/dbz/issues/1527[debezium/dbz#1527]
218+
* Thread-safety issue in MongoDB connector causes incorrect source.collection metadata during parallel snapshot https://github.com/debezium/dbz/issues/1531[debezium/dbz#1531]
219+
220+
== Summary
221+
222+
In total, https://github.com/orgs/debezium/projects/5/views/6?query=sort%3Aupdated-desc+is%3Aopen&filterQuery=status%3AReleased+iteration%3A3.5.0.Alpha1[44 issues] were resolved in Debezium 3.5.0.Alpha1.
223+
The list of changes can also be found in our https://debezium.io/releases/3.4[release notes].
224+
225+
A big thank you to all the contributors from the community who worked diligently on this release:
226+
+
227+
Anton Repin,
228+
https://github.com/abusquets[Alexandre Busquets],
229+
https://github.com/atorik[Atsushi Torikoshi],
230+
https://github.com/Naros[Chris Cranford],
231+
https://github.com/cjbooms[Conor Gallagher],
232+
https://github.com/kmos[Giovanni Panice],
233+
https://github.com/haydarmiezanie[Haydar],
234+
https://github.com/haydarmiezanie[Haydar Miezanie Abdul Jamil],
235+
https://github.com/haydarmiezanie[Haydar] Miezanie Abdul Jamil,
236+
https://github.com/indraraj[Indra Shukla],
237+
https://github.com/jpechane[Jiri Pechanec],
238+
https://github.com/MV-GH[Maarten Vercruysse],
239+
https://github.com/mfvitale[Mario Fiore Vitale],
240+
https://github.com/mrtworo[Mateusz Tworek],
241+
https://github.com/mhejnas[Matt Hejnas],
242+
https://github.com/koleo[Nicolas Payart],
243+
https://github.com/ochedru[Olivier Chédru],
244+
https://github.com/rophy[Rophy Tsai],
245+
https://github.com/rudi-bruchez[Rudi Bruchez],
246+
https://github.com/SreedevT[sreedev],
247+
https://github.com/vjuranek[Vojtech Juranek]

0 commit comments

Comments
 (0)