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)

Reply via email to