travisjeffery/jocko has 5,007 GitHub stars and 371 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 13:48 UTC. Last push 2026-05-20.
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalJocko
Kafka/distributed commit log service in Go.
Goals of this project:
- Implement Kafka in Go
- Protocol compatible with Kafka so Kafka clients and services work with Jocko
- Make operating simpler
- Distribute a single binary
- Use Serf for discovery, Raft for consensus (and remove the need to run ZooKeeper)
- Smarter configuration settings
- Able to use percentages of disk space for retention policies rather than only bytes and time kept
- Handling size configs when you change the number of partitions or add topics
- Learn a lot and have fun
TODO
- Producing
- Fetching
- Partition consensus and distribution
- Protocol
- Produce
- Fetch
- Metadata
- Create Topics
- Delete Topics
- Consumer group [current task]
- Discovery
- API versioning [more API versions to implement]
- Replication [first draft done - testing heavily now]
Hiatus Writing Book
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.
Reading
- How Jocko's built-in service discovery and consensus works
- How Jocko's (and Kafka's) storage internals work
Project Layout
├── 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
Building
Local
Clone Jocko
$ go get github.com/travisjeffery/jockoBuild Jocko
$ cd $GOPATH/src/github.com/travisjeffery/jocko $ make build(If you see an error about
depnot being found, ensure that$GOPATH/binis in yourPATH)
Docker
docker build -t travisjeffery/jocko:latest .
Contributing
See CONTRIBUTING for details on submitting patches and the contribution workflow.
License
Jocko is under the MIT license, see the LICENSE file for details.
GitHub @travisjeffery
Twitter @travisjeffery
Medium @travisjeffery
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,143 starspublic-apis/public-apis
A collective list of free APIs
497,360 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
444,407 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,216 stars