Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyKAFKA-4748

Public Interfaces

Code Block
languagejava
linenumberstrue
/**
 * 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