Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
With the introduction of https://cwiki.apache.org/confluence/display/KAFKA/KIP-372%3A+Naming+Repartition+Topics+for+Joins+and+Grouping , in conjunction with naming state via Materialized and Suppressed, Streams users have the ability to alter their topologies and restart without losing track of operator state or repartition topics.
It would be a robust pattern to always name stateful components, but this pattern is vulnerable to simple coding and configuration mistakes. If developers lose vigilence even once and deploy a topology with any state not named, the only way to correct it is with an application reset.
Streams can support topology compatibility by offering a config option to require names on all stateful components. Then, if someone accidentally adds an anonymous stateful operator, Streams would throw an exception instead of generating a name, preserving the integrity of the application.