Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
public class KafkaStreams {

	public void init(final InitProperties initProperties);

	public class InitProperties {
 		public void setUpRepartitionTopicsIfAbsentEnabled();
 		public void setUpRepartitionTopicsIfAbsentDisabled();
 		public void setUpChangelogTopicsIfAbsentEnabled();
 		public void setUpChangelogTopicsIfAbsentDisabled();
 		public void setUpInternalTopicsIfAbsentEnabled();
 		public void setUpInternalTopicsIfAbsentDisabled();
	}
}


We propose to add a new configuration to Kafka Streams to determine whether the initialization should be done automatically during a rebalance or by users calling KafkaStreams#init().

Code Block
languagejava
public class StreamsConfig {

	// possible values
	public static final String AUTOMATIC_SETUP = "automatic";
	public static final String MANUAL_SETUP = "manual";

	// configuration
    public static final String INTERNAL_TOPIC_SETUP = "internal.topics.setup";  // default is AUTOMATIC_INITIALIZATIONSETUP 
 
}


We propose to add a new exception that helps to discriminate errors originating from missing internal topics from other errors in the uncaught exception handler. For example, reacting on a missing source topic (i.e., MissingSourceTopicException) might be different from reacting on missing internal topics, because the process for re-creating source topics might differ from the process for re-creating internal topics. Furthermore, source topics might be owned by a different team than the internal topics, consequently different people need to be paged.

...