...
Currently there is not a native way to shutdown and entire KStreams application from a StreamThread. This functionality would be useful for immediately halting processing to prevent data from being corrupted.
This would help recover form errors such as a source topic deleted.or problems such the following:
- source/sink topic deleted. A handler will be exposed to a the users created for error source topics in KIP-662.
- Serialization or Deserialization failures. This can add another option to prevent rolling thread death.
- currently they have the option of returning a Continue or Fail Enum. In the future we can expand this to include Shutdown and then throw ShutdownRequestedException in response
- Add another option in KIP-399 if failing and having only the thread fail is not comprehensive enough
- User specific cases such as
Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-4748
Public Interfaces
Code Block | ||||
---|---|---|---|---|
| ||||
/** * Should be thrown in reaction to an event that necessitates the closure of the entire Streams application. * */ public class ShutdownRequestedException extends StreamsException { public ShutdownRequestedException(final String message) { super(message); } public ShutdownRequestedException(final String message, final Throwable throwable) { super(message, throwable); } public ShutdownRequestedException(final Throwable throwable) { super(throwable); } } |
...
The SubcriptionInfoData will be upgraded to version 8 because we are adding a feild field for an error code to be propgated propagated through the application.
No methods need to be deprecated.
Rejected Alternatives
...
- Two paths, Internal Error via exception and a request method for users to call
- Add a config option to shutdown when ever a user error is thrown - no flexible enough