apache / apache/fluss

[kafka] Handle basic Produce requests independently of storage

Open
#4,281 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Purpose

Part of #4185. PR05 of the Kafka compatibility sequence.

Implement non-idempotent Produce v3-v11 with a narrow backend contract. Validate acknowledgements, topic/partition identities and record batches; isolate invalid partitions, preserve response order and copy record data independently of the network buffer.

### Acceptance criteria

- [ ] Valid requests preserve records, headers, listener context, acks and timeout.
- [ ] Invalid batches and topics do not suppress valid partitions in the same request.
- [ ] Transactional/idempotent/control batches and duplicate partition entries are rejected.
- [ ] acks=0 emits no response and releases the request buffer on success and failure.
- [ ] Production ApiVersions continues to expose only the existing capabilities until append is integrated.

### Dependencies

PR04 Metadata (#4261 / #4266).

### Scope boundary

No row conversion, gateway append or production Produce registration.

### Implementation

Draft PR #4284: https://github.com/apache/fluss/pull/4284

Java 11 validation: 69 unit tests and 2 integration tests passed at `936fd3f39e9e6fe595ed6bf8e30f0e2b5185ffe3`. Review and merge remain pending.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing draft PR #4284 and the Metadata dependency in #4261/#4266, then inspect the stated Java 11 validation results. Done means the acceptance criteria hold for Produce v3-v11 while storage conversion, gateway append, and production registration remain out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kafka
Domain
backend, stream-processing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.