You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Nicholas Telford (Jira)" <ji...@apache.org> on 2023/10/12 16:58:00 UTC

[jira] [Created] (KAFKA-15600) KIP-990: Capability to SUSPEND Tasks on DeserializationException

Nicholas Telford created KAFKA-15600:
----------------------------------------

             Summary: KIP-990: Capability to SUSPEND Tasks on DeserializationException
                 Key: KAFKA-15600
                 URL: https://issues.apache.org/jira/browse/KAFKA-15600
             Project: Kafka
          Issue Type: Improvement
          Components: streams
            Reporter: Nicholas Telford


Presently, Kafka Streams provides users with two options for handling a {{DeserializationException}}  via the {{DeserializationExceptionHandler}}  interface:
 # {{FAIL}} - throw an Exception that causes the stream thread to fail. This will either cause the whole application instance to exit, or the stream thread will be replaced and restarted. Either way, the failed {{Task}} will end up being resumed, either by the current instance or after being rebalanced to another, causing a cascading failure until a user intervenes to address the problem.
 # {{CONTINUE}} - discard the record and continue processing with the next record. This can cause data loss if the record triggering the {{DeserializationException}} should be considered a valid record. This can happen if an upstream producer changes the record schema in a way that is incompatible with the streams application, or if there is a bug in the {{Deserializer}}  (for example, failing to handle a valid edge-case).

The user can currently choose between data loss, or a cascading failure that usually causes all processing to slowly grind to a halt.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)