...
Error | Code | Description |
---|---|---|
NoError | 0 | No error--it worked! |
Unknown | -1 | An unexpected server error |
OffsetOutOfRange | 1 | The requested offset is outside the range of offsets maintained by the server for the given topic/partition. |
InvalidMessage | 2 | This indicates that a message contents does not match its CRC |
UnknownTopicOrPartition | 3 | This request is for a topic or partition that does not exist on this broker. |
InvalidMessageSize | 4 | The message has a negative size |
LeaderNotAvailable | 5 | This error is thrown if we are in the middle of a leadership election and there is currently no leader for this partition and hence it is unavailable for writes. |
NotLeaderForPartition | 6 | This error is thrown if the client attempts to send messages to a replica that is not the leader for some partition. It indicates that the clients metadata is out of date. |
RequestTimedOut | 7 | This error is thrown if the request exceeds the user-specified time limit in the request. |
BrokerNotAvailable | 8 | This is not a client facing error and is used only internally by intra-cluster broker communication. |
ReplicaNotAvailable | 9 | What is the difference between this and LeaderNotAvailable? |
MessageSizeTooLarge | 10 | The server has a configurable maximum message size to avoid unbounded memory allocation. This error is thrown if the client attempt to produce a message larger than this maximum. |
Some Common Philosophical Questions
Some people have asked why we don't use HTTP. There are a number of reasons, the best is that client implementors can make use of some of the more advanced TCP features--the ability to multiplex requests, the ability to simultaneously poll many connections, etc. We have also found HTTP libraries in many languages to be surprisingly shabby.
...