...
Furthermore, the approaches used to configure these components are different, with some configurations using complex Java objects while others use ConfigOption, which is a key-value configuration approach. This makes it difficult to effectively manage job configuration. For example, validating non-ConfigOption job configuration is challenging, as seen in StreamContextEnvironment#checkCheckpointConfig. Additionally, passing complex Java objects (e.g., state backend and checkpoint storage) between the environment, streamGraph, and jobGraph adds complexity to development.
...
Class | Fields or Methods | Annotation |
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment | setStateBackend(StateBackend backend) | @Public |
getStateBackend() | ||
defaultStateBackend |
Suggested alternative: Users can configure Users can configure "state.backend.type" in the configuration as the fully qualified name of the state backend or use some FLINK-provided state backend shortcut names such as in the configuration as the fully qualified name of the state backend or use some FLINK-provided state backend shortcut names such as "hashmap" and and "rocksdb", and provide the necessary configuration options for building that StateBackend, instead of passing a StateBackend objectand provide the necessary configuration options for building that StateBackend, instead of passing a StateBackend object.
Proposed Changes
We propose deprecating the classes/methods mentioned above and updating the documentation from the Flink website.
...