Current stateAccepted

Discussion thread: (skipped discussion) [VOTE] KIP-528: Deprecate PartitionGrouper configuration and interface

JIRA: KAFKA-8927 - Getting issue details... STATUS

Released: 2.4

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).


The PartitionGrouper interface was originally exposed to allow user a higher degree of flexibility with regard to partition to task mapping. However, Kafka Streams runtime employs many undocumented restrictions to write a correct PartitionGrouper and hence it is easy for users to break the runtime that way.

In practice, we have not seen the usage of the interface. Hence, we should deprecate and eventually remove it.

Public Interfaces

package org.apache.kafka.streams.processor;

public interface PartitionGrouper {...}

public class DefaultPartitionGrouper implements PartitionGrouper {...}

// ----------

package org.apache.kafka.streams;

public class StreamConfig {
	public static final String PARTITION_GROUPER_CLASS_CONFIG = "partition.grouper";

Proposed Changes

We suggest to deprecate PartitionGrouper interface and its corresponding configuration parameter and to remove both in the next major release 3.0.0.

Compatibility, Deprecation, and Migration Plan

As we are only deprecating an interface and a configuration parameter, there are not backward compatibility concerns.

Rejected Alternatives


  • No labels