sanghyeok An created KAFKA-20934:
------------------------------------

             Summary: Considering Share Groups for decoupling stateless Kafka 
Streams processing parallelism from source partitions
                 Key: KAFKA-20934
                 URL: https://issues.apache.org/jira/browse/KAFKA-20934
             Project: Kafka
          Issue Type: Improvement
            Reporter: sanghyeok An
            Assignee: sanghyeok An


I am creating this Jira ticket for ideation. If Kafka maintainers or the 
community think this direction is worth discussing, I would be happy to write a 
KIP and develop the discussion further.

Currently, Kafka Streams processing parallelism is closely tied to the number 
of partitions in the source topic. In contrast, Share Groups allow multiple 
consumers to share the same partition, and the number of consumers can exceed 
the number of partitions. Therefore, using Share Groups may provide a way to 
decouple processing parallelism from the number of source partitions.

Applying this model to existing stateful Kafka Streams topologies does not 
appear to be straightforward. Stateful processing in Kafka Streams is based on 
a model in which a task owns specific input partitions and local state stores. 
In addition, with Share Groups, records from the same partition may be 
processed by different consumers, and partition-level ordering is not 
guaranteed overall.

However, there may be room to use Share Groups for stateless Kafka Streams 
topologies where record processing is order-independent. In such topologies, 
processing records from the same source partition across multiple Streams 
instances would not introduce conflicts in terms of state ownership, 
potentially allowing the number of processing instances to exceed the number of 
source partitions.

Although proper performance evaluation would be necessary, this could 
potentially improve throughput for stateless topologies where application-side 
processing is the bottleneck. It could also reduce the need to over-partition 
topics solely to achieve higher processing parallelism, which may in turn 
reduce the operational overhead associated with maintaining a large number of 
partitions. KIP-932 also describes over-partitioning for parallel consumption 
as one of the problems that Share Groups are intended to address.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to