debezium/dbz#2194 Debezium Bridge Extension - #290
Conversation
327d9d6 to
1d2b5b4
Compare
| public ChangeConsumerHolder produces() { | ||
| List<DebeziumServerConsumer<CapturingEvents<BatchEvent>>> consumers = instance.stream().toList(); | ||
|
|
||
| if (consumers.size() > 1) { |
There was a problem hiding this comment.
Should we also guard against the size being 0 to avoid IndexOutOfBoundsException below?
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
05d1e1a to
aab3c3b
Compare
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
|
@kmos General stupid question. Should the Sorry I unintentionally clicked on |
@mfvitale Well, it should be, but currently it isn't feasible. To move the bridge extension into the Quarkus repository, we would need to build |
|
I do think that's the right long-term goal, @kmos, just from a pure logistical point of view: I assume your PoV is something like this:
The alternative would be to introduce a debezium-api repository that houses all the API contracts used across the portfolio, and then all downstream repos can consume from it. Just moving the bits to the main repo gets us all we need without lots of interactions between the repos, which I think suffices for now, curious what others think. |
exactly. You are on the point. What I didn't think it's the possibility to have another repository. We should discuss how we want to manage all the APIs but I perfectly agree on the proposed solution (I am not sure about the repository). |
Signed-off-by: kmos <kmos@commonhaus.dev>
Signed-off-by: kmos <kmos@commonhaus.dev>
Context
Today, the Quarkus Extensions provide both the Debezium Engine and the connector runtime, but they do not offer a built-in sink implementation. As a result, users must provide their own event consumer by implementing a method annotated with
@Capturing.Proposal
We would like to introduce an extension that bridges the Debezium Server sink infrastructure and exposes it as a sink target for the Quarkus Extensions.
With this approach, a Quarkus application or even a JBang script could act as a lightweight Debezium Server, leveraging the existing Debezium Server sink implementations without requiring users to write custom
@Capturinghandlers.The following example illustrates the concept from both a code and dependency perspective:
The code executes CDC from postgres to kafka converting all the fields to String
closes debezium/dbz#2194