You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Guozhang Wang (JIRA)" <ji...@apache.org> on 2015/01/14 20:07:36 UTC

[jira] [Created] (KAFKA-1863) Exception categories / hierarchy in clients

Guozhang Wang created KAFKA-1863:
------------------------------------

             Summary: Exception categories / hierarchy in clients
                 Key: KAFKA-1863
                 URL: https://issues.apache.org/jira/browse/KAFKA-1863
             Project: Kafka
          Issue Type: Bug
            Reporter: Guozhang Wang
            Assignee: Guozhang Wang
             Fix For: 0.9.0


In the new clients package we introduces a new set of exceptions, but its hierarchy is not very clear as of today:

{code}
RuntimeException -> KafkaException -> BufferExhastedException
                                                           -> ConfigException
                                                           -> SerializationException
                                                           -> QuotaViolationException
                                                           -> SchemaException

                                                           -> ApiException

ApiException -> InvalidTopicException
                     -> OffsetMetadataTooLarge (probabaly need to be renamed)
                     -> RecordBatchTooLargeException
                     -> RecordTooLargeException
                     -> UnknownServerException

                     -> RetriableException

RetriableException -> CorruptRecordException
                               -> InvalidMetadataException
                               -> NotEnoughtReplicasAfterAppendException
                               -> NotEnoughReplicasException
                               -> OffsetOutOfRangeException
                               -> TimeoutException
                               -> UnknownTopicOrPartitionException
{code}

KafkaProducer.send() may throw KafkaExceptions that are not ApiExceptions; other exceptions will be set in the returned future metadata.

We need better to

1. Re-examine the hierarchy. For example, for producers only exceptions that are thrown directly from the caller thread before it is appended to the batch buffer should be ApiExceptions; some exceptions could be renamed / merged.

2. Clearly document the exception category / hierarchy as part of the release.

[~criccomini] may have some more feedbacks for this issue from Samza's usage experience. [~jkreps]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)