apache / apache/fluss

[kafka] Implement registry-backed ApiVersions API

Open
#4,265 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

### Parent issue

Part of #4185 — Kafka Protocols Compatibility: Basic Produce.

### Motivation

Kafka clients need an accurate list of supported API versions before using the server. Capability negotiation should be driven by implemented, registered handlers rather than by a list of placeholder APIs.

### Scope

- Implement ApiVersions using the capability registry from #4264.
- Advertise only registered, public capabilities and their supported version ranges.
- Connect the asynchronous dispatcher to the production Kafka request handler and replace the old switch/stubs.
- Cover supported and unsupported versions, invalid requests, error responses, and capability advertisement.

### Acceptance criteria

- [ ] ApiVersions returns the server's registered capabilities and version ranges.
- [ ] Unsupported versions and malformed requests produce the expected Kafka error responses.
- [ ] This stage registers only ApiVersions; Metadata is added by its own follow-up issue.
- [ ] Request/response buffer ownership remains correct and relevant Kafka tests and style checks pass.
- [ ] The focused implementation is reviewed and merged after its prerequisite.

### Dependencies

Depends on #4264.

### Out of scope

Metadata, Produce, authentication, schema conversion, Kafka CreateTopics/DeleteTopics, and automatic table creation.

### Implementation and review

Implementation PR: #4260.

The PR remains a draft while the framework dependency is pending. Its description includes an incremental comparison for reviewing this stage alone.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with prerequisite issue #4264 and the incremental comparison in draft PR #4260, then inspect the production Kafka request handler and relevant Kafka tests. Done means registered public capabilities and version ranges are advertised, invalid or unsupported requests return expected errors, buffer ownership remains correct, and style and focused tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, distributed-systems
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.