apache / apache/druid

Kafka 4.x Queue Semantics support in Kafka Ingestion

Open
#18,439 21 comments 1 reaction 0 assignees View on GitHub
Feature/Change Description
Dominant language
Java
Stars
14.1k
Forks
3.8k
Avg merge
2d 58m
Merged PRs (30d)
233

Description

The Shared Group API (KIP-932) Kafka handles partition assignment automatically and consumer group coordination can be simplified, hence upgrading to Kafka Share Consumer API can have significant performance improvements.

### 1. Use Case: Breaking the Partition Bottleneck

Currently, Druid ingestion is limited by a **1:1 mapping** between Kafka partitions and Druid tasks.

* **The Problem:** High-volume "hot partitions" create bottlenecks, limiting ingestion scalability.
* **The Solution:** Leverage **Kafka Share Groups**, enabling multiple Druid tasks to consume from the same partition, treating Kafka as a distributed queue.

### 2. Importance & Benefits

By adopting architectural patterns from **Flink FLIP-573**, we achieve:

* **Horizontal Scalability:** Scale Druid tasks independently of Kafka partition count.
* **Instant Scaling:** No costly rebalancing. Adding a task is fast; the Kafka broker handles record assignment.
* **Improved Fault Tolerance:** Unacknowledged records are automatically redelivered to other tasks upon task failure.

Contributor guide

Open the contributing guide

Research direction

The issue concerns Druid Kafka Ingestion and the Kafka Shared Group API from KIP-932, with Flink FLIP-573 cited as an architectural reference. Start by reviewing those APIs and the existing Kafka ingestion design. Done would mean supporting multiple Druid tasks on a partition, scaling without costly rebalancing, and redelivering unacknowledged records after task failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kafka
Domain
data-engineering, stream-processing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.