main |
This repository hosts Debezium extensions for Quarkus, enabling Quarkus applications to work with Debezium for change data capture (CDC) and related patterns.
-
Debezium Outbox for Quarkus — a Quarkus extension implementing the Outbox pattern. The Extension provides highly configurable component that facilitates the use of the Outbox pattern paired with Debezium’s CDC connector pipeline.
-
Debezium Runtime Extensions for Quarkus — integrates the Debezium runtime into a Quarkus application so you can consume CDC events within the service. It exposes Quarkus-native configuration, lifecycle hooks, listeners, deserializers, heartbeat and notification events, custom converters and post-processors.
-
Use the Outbox extension to implement reliable, asynchronous inter-service communication without dual-writes; combine your app’s transactional outbox table with Debezium connectors and your chosen sink (Kafka, etc.).
-
Use the Quarkus Debezium Engine extension when you want lightweight, Kafka-free (optional) CDC inside your application with fast startup and small memory footprint (particularly with Quarkus Native/GraalVM). Best for POCs, dev environments, or simple streaming in microservices.
Using Quarkus CLI:
quarkus ext add io.debezium.quarkus:quarkus-debezium-postgresUsing Maven:
<dependency>
<groupId>io.debezium.quarkus</groupId>
<artifactId>quarkus-debezium-postgres</artifactId>
<version>${version.debezium}</version>
</dependency>Using Gradle:
implementation("io.debezium.quarkus:quarkus-debezium-postgres:${version.debezium}")The Engine extension brings Quarkus-native configuration and listener APIs for consuming CDC events in-process. See the documentation for features and setup details.
Using Quarkus CLI:
quarkus ext add io.debezium:debezium-quarkus-outboxUsing Maven:
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-quarkus-outbox</artifactId>
<version>${version.debezium}</version>
</dependency>Using Gradle:
implementation("io.debezium:debezium-quarkus-outbox:${version.debezium}")Define an event class implementing io.debezium.outbox.quarkus.ExportedEvent interface and emit it via CDI (Jakarta Event), and configure the extension/Debezium will capture the outbox table changes and route them downstream. See the documentation for features and setup details.
-
Debezium examples repository includes Outbox and other Quarkus-based demos for CDC patterns and native builds.
Depending on the extension and target (JVM vs native), typical prerequisites include:
-
JDK 21+
-
Apache Maven 3.9+
-
Quarkus 3.25+ (or platform-aligned)
-
Docker/Podman for local services
-
Optional: Mandrel or GraalVM for native builds
Consult the extension docs for exact versions and details.