Skip to content

[kafka] Add request and transport framework #4264

Closed

Description

@gyang94

Parent issue

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

Motivation

Provide the reusable request and transport foundation for small, independently reviewable Kafka API implementations. This issue establishes the infrastructure; it does not implement a new concrete API handler.

Scope

  • Add request context, API specifications, typed handlers, a capability registry, asynchronous dispatch, and common error mapping.
  • Propagate listener and connection context from the Kafka transport.
  • Handle request/response buffer ownership, including idempotent release and cleanup on serialization failure.
  • Recognize configured Kafka protocol endpoints in the Netty server.
  • Retain the existing request-handler behavior until the ApiVersions follow-up connects the dispatcher to production.

Acceptance criteria

  • Registry and dispatcher tests cover registration, version checks, asynchronous completion, and handler failures.
  • Request context reaches handlers without losing listener or connection information.
  • Request and response buffers are released correctly on successful and failing paths.
  • Relevant Kafka and RPC unit/integration tests, formatting, and license checks pass.
  • The focused implementation is reviewed and merged before dependent stages are completed.

Out of scope

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

Implementation and review

Implementation PR: #4259.

This is the first foundation stage. The ApiVersions and Metadata issues build on it. Track completion in this issue rather than in a PR checklist on the umbrella.

Activity

  1. Anurag15v commented on Oct 4, 2026

    @Anurag15v

    Hi @wuchong
    Can you assign it to me ?

  2. added this to the v1.1 milestone on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions