kpax

package module
v0.0.0-...-07ad8dd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2018 License: BSD-2-Clause Imports: 0 Imported by: 0

README

kpax: a modular & idiomatic Kafka client in Go

GoDoc

Install

go get -u h12.io/kpax.v1
Compatibility

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
    • partition expand (-)
  • consumer
    • just loop & wait on error
    • partition expand (-)
  • graceful shutdown (-)
Efficiency
  • efficiency
    • batching
      • consumer response
      • consumer request (-)
      • producer (-)
    • decompression
      • snappy
      • gzip (-)
    • compression
      • snappy (-)
      • gzip (-)

Author

Hǎiliàng Wáng

Contributors

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
spec
gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL