h12.io/kpax.v1 is compatible with Kafka Server 0.8.2.
Design
The client is built on top of Kafka Wire Protocol (i.e. low-level API). The protocol related types & marshal/unmarshal functions are automatically generated by wipro from the HTML spec).
(-) means to be done.
Sub packages
model is an abstraction model for request, response, broker and cluster
broker is a lazy, asynchronous and recoverable round tripper that talks to a single Kafka broker
cluster is a metadata manager that talks to a Kafka cluster
proto contains both low level API and a "middle" level facade
producer: fault tolerant high-level producer (batching and partitioning strategy)
consumer: fault tolerant high-level consumer (consumer group and offset commit)
log: replaceable global logger
cmd
kpax: command line tool to help with Kafka programming
Error Handling
broker
fail fast: timeout returns error immediately
release resources carefully
reconnect when requested next time
client
metadata reload lazily (only when a leader/coordinator cannot be found in cache)
leader/coordinator should be deleted on error
producer
fail over to another partition
failed partition will be retried again after a period of time