...
Code Block | ||
---|---|---|
| ||
public class StreamsConfig { @Deprecated // use EXACTLY/** * @deprecated Since 3.0.0, will be removed in 4.0. Use {@link #EXACTLY_ONCE_V2 "exactly_once_v2"} instead. */ @Deprecated public static final String EXACTLY_ONCE = "exactly_once"; /** @Deprecated // use EXACTLY * @deprecated Since 3.0.0, will be removed in 4.0. Use {@link #EXACTLY_ONCE_V2 "exactly_once_v2"} instead. */ @Deprecated public static final String EXACTLY_ONCE_BETA = "exactly_once_beta"; /** * Config value for parameter {@link #PROCESSING_GUARANTEE_CONFIG "processing.guarantee"} for exactly-once processing guarantees. * <p> * Enabling exactly-once-v2 requires broker version 2.5 or higher. * If you enable this feature Kafka Streams will use fewer resources (like broker connections) * compared to the {@link #EXACTLY_ONCE} case. This config corresponds * to the old {@link EXACTLY#EXACTLY_ONCE_BETA} processing mode, which has been deprecated * in favor of this config. */ public static final String EXACTLY_ONCE_V2 = "exactly_once_v2"; } |
...
We plan to deprecate both existing EOS configs, and add a new config which corresponds to the existing "eos-beta" option. What we now call "eos-beta" will become "eos-v2", in code, comments, configs, and docs. No changes to the actual eos implementation will be made at this time – when eos-alpha is finally removed (likely in 4.0) then we can significantly clean up the task and producer management code since it will be all thread-level producers.
Since some users may skip the StreamsConfig and set the string value of "exactly_once" or "exactly_once_beta" directly, we will also log a warning if those configs are detected to raise the visibility for users who may have missed the deprecation.
Compatibility, Deprecation, and Migration Plan
...