finds.dev← search

// the find

travisjeffery/jocko

★ 5,011 · Go · MIT · updated May 2026

Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)

Jocko is a Go reimplementation of Kafka that swaps ZooKeeper for Serf (gossip discovery) and Raft (consensus), giving you a single binary instead of a JVM + ZK cluster. It's wire-protocol compatible with existing Kafka clients. Aimed at people who want Kafka semantics without the Java operational overhead.

The coordination stack (Serf + Raft via Hashicorp libraries) is a genuinely good architectural call — it's the same approach Consul uses and it's battle-tested. The commit log implementation is separated cleanly in its own package with solid test coverage including segment, index, and compaction tests. Wire compatibility with Sarama and other Kafka clients means you can drop it in without changing producers or consumers. Single binary distribution is a real operational win over managing a JVM + ZooKeeper ensemble.

Consumer groups are explicitly unfinished — that TODO has been sitting there for years, which means you can't use this for anything that needs coordinated consumer offsets. Replication is described as 'first draft, testing heavily' in the README, so data durability guarantees are unclear at best and dangerous at worst. The project has been on hiatus while the author wrote a book; commits are sparse and it's unlikely to catch up with Kafka's protocol evolution (idempotent producers, transactions, incremental fetch, etc.). Don't use this in production — it's a well-structured learning project, not a Kafka replacement.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →