Decode the remaining Kafka key and metadata shapes natively
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- backend, data-engineering, stream-processing
Research direction
Read the connector admission policy, docs/connectors/kafka.md, and the work tracked in #657; this issue depends on #539 and #540. Start by choosing one listed Kafka shape and add parity tests against Flink's deserializers plus end-to-end decode-counter evidence on both lines. Done means the admission policy's measurements pass and the fallback list is updated for each shape that lands.
Written by the indexing model from the issue text.
Description
Priority: P3.
Problem
After #539 and #540, these Kafka source shapes still stay on Flink's decoder at planning time, so a native pipeline over them pays Flink's decode and a RowData-to-Arrow transpose:
- key and value formats decoded by different native libraries, such as a JSON key over an Avro value or a bare Avro key over an Avro Confluent value;
- Protobuf keys, and any key over a Protobuf value;
- connector metadata over Debezium Avro Confluent and Protobuf values;
- a CDC format's own
value.*metadata, such as Canal'svalue.database; - a
TIMESTAMP(3)metadata rowtime, which Flink derives through the session time zone; - tables whose columns are all metadata, and keyed tables whose every physical column is a key field under
EXCEPT_KEY.
Direction
Admit each shape only with parity tests against Flink's own deserializers and end-to-end decode-counter evidence on both lines, plus measurements against stock Flink and the current route, per the connector admission policy. A cross-library key could decode in its own library and cross into the value library's composition as Arrow C Data, so no Rust object crosses a library boundary. Update the fallback list in docs/connectors/kafka.md as each shape lands.
Depends on #539 and #540. Tracked in #657.
- Dominant language
- Java
- Stars
- 157
- Forks
- 13
- Avg merge
- 7h 56m
- Merged PRs (30d)
- 153
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from datafusion-contrib/StreamFusion
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
datafusion-contrib/StreamFusion#653 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
datafusion-contrib/StreamFusion#187 ·
Maintainers usually reply within 1 day
-
Keep remaining connector source attachments and release checks module-localPossibly taken @liuyongvs claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
datafusion-contrib/StreamFusion#658 ·
Maintainers usually reply within 1 day
-
Widen native Kafka source admission: metadata, non-raw keys, Canal include filters, nested CDCPossibly taken @Flanderzz claimed this 15 days ago. Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
datafusion-contrib/StreamFusion#657 ·
Maintainers usually reply within 1 day
-
Native JSON decode diverges from Flink on quoted booleans, dates, negative zero and message boundariesPossibly taken @Flanderzz claimed this 15 days ago. Open
Difficulty 5/5 Over a week Newbie friendliness 10/100
datafusion-contrib/StreamFusion#656 ·
Maintainers usually reply within 1 day
All issues in datafusion-contrib/StreamFusion
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
SasanLabs/VulnerableApp#912 ·
Maintainers usually reply within 1 day
-
area/build area/events area/storage area/storage/kafkasql area/storage/sql
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Apicurio/apicurio-registry#11079 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
OpenAEV-Platform/openaev#9139 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
desktop edt not responding
Difficulty 2/5 1-3 hours Newbie friendliness 78/100