Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Currently, when there's an error e.g. initializing a state store (e.g. RocksDB.open throws an exception), or writing checkpoints throws IOException, it would cause a ProcessorStateException which is a sub-class of the more general StreamsException and it is considered a fatal error and would cause the streams to stop.
While the latter case is arguably a valid exception to throw to users to handle, for the first case, and some others, we can potentially let Streams to handle this case by, e.g., wiping out the whole store and then retry initializing the state store with bootstrapping position at offset 0, but this worth some discussion here: which type of state store management related exceptions should be handled automatically by Streams, and which others should still be thrown to users.