Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
Kafka/distributed commit log service in Go.
I’m writing a book for PragProg called Building Distributed Services with Go. You can sign up on this mailing list and get updated when the book’s available. It walks you through building a distributed commit log from scratch. I hope it will help Jocko contributors and people who want to work on distributed services.
├── broker broker subsystem ├── cmd commands │ └── jocko command to run a Jocko broker and manage topics ├── commitlog low-level commit log implementation ├── examples examples running/using Jocko │ ├── cluster example booting up a 3-broker Jocko cluster │ └── sarama example producing/consuming with Sarama ├── protocol golang implementation of Kafka's protocol ├── prometheus wrapper around Prometheus' client lib to handle metrics ├── server API subsystem └── testutil test utils └── mock mocks of the various subsystems
Clone Jocko
$ go get github.com/travisjeffery/jocko
Build Jocko
$ cd $GOPATH/src/github.com/travisjeffery/jocko $ make build
(If you see an error about
depnot being found, ensure that
$GOPATH/binis in your
PATH)
docker build -t travisjeffery/jocko:latest .
See CONTRIBUTING for details on submitting patches and the contribution workflow.
Jocko is under the MIT license, see the LICENSE file for details.
Twitter @travisjeffery
Medium @travisjeffery