Popularity
9.1
Stable
Activity
0.0
Stable
4,882
227
363

Programming language: Go
License: MIT License
Tags: Server Applications     API     Web Frameworks     Tools    
Latest version: v0.0.1

Jocko alternatives and similar packages

Based on the "Server Applications" category.
Alternatively, view Jocko alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Jocko or a related project?

Add another 'Server Applications' Package

README

Jocko

ci gitter codecov

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

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

  1. Clone Jocko

    $ go get github.com/travisjeffery/jocko
    
  2. Build Jocko

    $ cd $GOPATH/src/github.com/travisjeffery/jocko
    $ make build
    

    (If you see an error about dep not being found, ensure that $GOPATH/bin is in your PATH)

Docker

docker build -t travisjeffery/jocko:latest .

Contributing

See [CONTRIBUTING](CONTRIBUTING.md) for details on submitting patches and the contribution workflow.

License

Jocko is under the MIT license, see the [LICENSE](LICENSE) file for details.



*Note that all licence references and agreements mentioned in the Jocko README section above are relevant to that project's source code only.