debezium / debezium/dbz

Add YDB sink (debezium-server-ydb)

Open
#1,927 0 comments 0 reactions 0 assignees View on GitHub
component/debezium-server type/enhancement
Dominant language
HTML
Stars
6
Forks
8
Avg merge
2d 19h
Merged PRs (30d)
1

Description

## Feature request or enhancement

_For feature requests or enhancements, please provide the following information:_

**Which use case/requirement will be addressed by the proposed feature?**

` Debezium Server has no sink for https://ydb.tech — an open-source distributed SQL database with a Kafka-compatible Topics API. Today users who want CDC into YDB must either bridge through Kafka or hand-roll an embedded-engine app, re-inventing the offset/retry/commit
machinery debezium-server already provides for other sinks.

A first-class debezium-server-ydb sink would put YDB on par with the existing Pulsar / Kinesis / Pub/Sub / RabbitMQ / NATS sinks and pair naturally with the YDB-backed OffsetBackingStore and SchemaHistory proposed separately, enabling a Kafka-free, fully YDB-resident
Debezium deployment.`

---

**Implementation ideas (optional)**

`- New module debezium-server-ydb, wired into the parent pom.xml, BOM, and debezium-server-dist assembly.
- YdbChangeConsumer extends BaseChangeConsumer, @Named("ydb") @Dependent. @PostConstruct opens GrpcTransport + TopicClient; @PreDestroy drains async writers.
- YdbChangeConsumerConfig exposing the usual Field.Set under debezium.sink.ydb.*.
- handleBatch keeps a pool of AsyncWriters keyed by producer_id (connector + instance + message group, group defaulting to record.destination()), awaits all WriteAcks, then calls markProcessed / markBatchFinished.
- YdbIT using a testcontainer-based TestResourceLifecycleManager.


A working prototype of the consumer logic already exists out-of-tree and will be ported into the canonical CDI shape for the PR. `

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.