{"repo":"travisjeffery/jocko","free":true,"listed":false,"github":"https://github.com/travisjeffery/jocko","clone":"git clone https://github.com/travisjeffery/jocko.git","description":"Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)","language":"Go","stars":5013,"topics":["kafka","distributed-systems","queue","messaging","go","streaming"],"license":"MIT","category":"chat-messaging","readme_excerpt":"Jocko 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 - [x] Producing - [x] Fetching - [x] Partition consensus and distribution - [ ] Protocol - [x] Produce - [x] Fetch - [x] Metadata - [x] Create Topics - [x] Delete Topics - [ ] Consumer group [current task] - [x] 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 Building Local 1. Clone Jocko 1. Build Jocko (If you see an error about dep not being found, ensure that $GOPATH/bin is in your PATH ","default_branch":null,"files":null,"tree":[],"storefront":"/r/travisjeffery","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/travisjeffery/jocko/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}