You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Status

Current stateUnder Discussion

Discussion thread: here 

JIRA: KAFKA-6874

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

Motivation

With the release of 2.0 Kafka Streams will introduce topology optimization, the goal of which is to reduce the footprint Kafka Streams creates especially with repartition and changelog topics. To that end, we would like to introduce a new config "enable.topology.optimization". The default value for this new configuration will be false. Kafka Streams needs this configuration to ensure backward compatibility.

Public Interfaces

There are no changes planned to public interfaces with this change.

Proposed Changes

This KIP will add a new config "enable.topology.optimization" to the StreamsConfig class.  Setting ENABLE_TOPOLOGY_OPTIMIZATION to any String value will enable optimization, setting this configuration to null disables optimization and is the default setting.

StreamsConfig.java
public static final String ENABLE_TOPOLOGY_OPTIMIZATION = "enable.topology.optimization" 
private static final String ENABLE_TOPOLOGY_OPTIMIZATION_DOC = "A configuration telling Kafka Streams if it should optimize the topology, null by default"


Compatibility, Deprecation, and Migration Plan

There is no backward compatibility issue as we are not deprecating or changing any public API.  Since the default value is false, the underlying change should be transparent to the user.  Users electing to use optimization should see the same results from their topology with no changes to their current code.

Rejected Alternatives

None

  • No labels