[ https://issues.apache.org/jira/browse/KAFKA-9342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Levani Kokhreidze updated KAFKA-9342: ------------------------------------- Description: Currently, Kafka Streams DSL config classes are mix of *mutable* _org.apache.kafka.streams.kstream.Consumed, org.apache.kafka.streams.kstream.Materialized_ and *immutable* _org.apache.kafka.streams.kstream.Joined, org.apache.kafka.streams.kstream.Grouped_ classes. Consider unifying all config classes of the DSL operations and make them immutable. Backward compatibility should be taken into account when making config classes immutable. For example, things may break for user if he or she has the code similar to this: {code:java} final Materialized<K, V, S> materialized = Materialized.as("my-store"); if (someCondition()) { materialized.withCachingDisabled(); }{code} was: Currently, Kafka Streams DSL config classes are mix of mutable _org.apache.kafka.streams.kstream.Consumed, org.apache.kafka.streams.kstream.Materialized_ and immutable _org.apache.kafka.streams.kstream.Joined, org.apache.kafka.streams.kstream.Grouped_ classes. Consider unifying all config classes of the DSL operations and make them immutable. Backward compatibility should be taken into account when making config classes immutable. For example, things may break for user if he or she has the code similar to this: {code:java} final Materialized<K, V, S> materialized = Materialized.as("my-store"); if (someCondition()) { materialized.withCachingDisabled(); }{code} > Consider making all Kafka Streams DSL configuration classes immutable > --------------------------------------------------------------------- > > Key: KAFKA-9342 > URL: https://issues.apache.org/jira/browse/KAFKA-9342 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Levani Kokhreidze > Priority: Major > > Currently, Kafka Streams DSL config classes are mix of *mutable* > _org.apache.kafka.streams.kstream.Consumed, > org.apache.kafka.streams.kstream.Materialized_ and *immutable* > _org.apache.kafka.streams.kstream.Joined, > org.apache.kafka.streams.kstream.Grouped_ classes. > Consider unifying all config classes of the DSL operations and make them > immutable. Backward compatibility should be taken into account when making > config classes immutable. For example, things may break for user if he or she > has the code similar to this: > > {code:java} > final Materialized<K, V, S> materialized = Materialized.as("my-store"); > if (someCondition()) { > materialized.withCachingDisabled(); > }{code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)