Skip to content

[kafka] Add schema-aware Produce transcoding - #4189

Draft
gyang94 wants to merge 4 commits into
apache:mainfrom
gyang94:codex/kafka-pr4-schema-produce
Draft

[kafka] Add schema-aware Produce transcoding#4189
gyang94 wants to merge 4 commits into
apache:mainfrom
gyang94:codex/kafka-pr4-schema-produce

Conversation

@gyang94

@gyang94 gyang94 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: #4185

Depends on #4188.

This is PR 4 of 4 for the Basic Produce compatibility milestone. The intended review delta is the single tip commit dc276fe8d; the earlier stack commits remain visible until their PRs are merged and this branch is rebased.

Brief change log

  • Resolve a Kafka record contract from Fluss table metadata.
  • Add raw, string, and JSON Kafka field decoders.
  • Support nested JSON projection, unknown-field handling, and rescue columns.
  • Assemble decoded Kafka keys, values, timestamps, and headers into Fluss rows.
  • Transcode schema-aware records into the table's native indexed or Arrow log format.
  • Add focused resolver, decoder, projection, and Produce handler coverage.

Tests

  • Kafka module: 93 tests passed.
  • Reactor build, Checkstyle, Spotless, and RAT validation passed.

API and Format

The change defines Kafka mapping through table custom properties and writes existing Fluss indexed or Arrow log formats. It does not introduce a new storage format or change the Fluss public client API.

Documentation

Adds design and research notes for Kafka JSON-to-Fluss schema mapping, including complex types and rescue behavior.

Stack

Generative AI disclosure: Codex (GPT-5.6) assisted with implementation and commit organization. Human review is required before merge.

Introduce request dispatch, ApiVersions, metadata discovery, and topic lifecycle operations as the reviewable foundation for subsequent Produce support.

Co-Authored-By: Codex <noreply@openai.com>

AI-Model: gpt-5.6-sol

AI-Contributed/Feature: 2698/2698

AI-Contributed/UT: 1160/1160
Support raw and string Produce requests, validate acks=all semantics, and wake delayed follower fetches after successful appends.

Co-Authored-By: Codex <noreply@openai.com>

AI-Model: gpt-5.6-sol

AI-Contributed/Feature: 1204/1204

AI-Contributed/UT: 2066/2066
Authenticate Kafka protocol connections with SASL/PLAIN and propagate the authenticated principal through request dispatch and authorization.

Co-Authored-By: Codex <noreply@openai.com>

AI-Model: gpt-5.6-sol

AI-Contributed/Feature: 1503/1503

AI-Contributed/UT: 1514/1514
Resolve Fluss table schemas and transcode raw, string, and JSON Kafka records into typed rows for Produce requests.

Co-Authored-By: Codex <noreply@openai.com>

AI-Model: gpt-5.6-sol

AI-Contributed/Feature: 2201/2201

AI-Contributed/UT: 1230/1230
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant