Status

Current stateAccepted

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

JIRA: Unable to render Jira issues macro, execution error.

Released: 2.4

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

Motivation

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;

@deprecate
public interface PartitionGrouper {...}

@deprecate
public class DefaultPartitionGrouper implements PartitionGrouper {...}

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

package org.apache.kafka.streams;

public class StreamConfig {
    @depredate
	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

None.

  • No labels