• This repository has been archived on 26/Sep/2020
  • Stars
    star
    101
  • Rank 338,166 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Jocko

Build Status codecov Go Report Card

Distributed commit log service in Go that is wire compatible with Kafka.

Created by @travisjeffery, continued by nash.

Goals:

  • Protocol compatible with Kafka so Kafka clients and services work with Jocko
  • Distribute a single binary
  • Use Serf for discovery, Raft for consensus (and remove the need to run ZooKeeper)
  • Simpler configuration settings

TODO

  • Map features missing
  • Extensive protocol compliance test suit
  • Update all dependencies and code to up-to-date Go (as of MAR2020)

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/nash-io/jocko
    
  2. Build Jocko

    $ cd $GOPATH/src/github.com/nash-io/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 nash-io/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.

More Repositories

1

openlimits

A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers.
Rust
278
star
2

neo-ico-template

An ICO Template for NEO projects
Python
117
star
3

nex-extension-alpha

WARNING: This repository is not current Nash extension, this was a alpha version (v0.1.0) available for security audit and developers. For issues regarding current versions of the extension please visit: https://support.nash.io
JavaScript
18
star
4

api-client-typescript

Official TypeScript client for interacting with the Nash Exchange.
TypeScript
14
star
5

nash-protocol

Typescript implementation of Nash cryptographic routines.
TypeScript
10
star
6

locale

Nash platform language package
TypeScript
9
star
7

staking

Repository for staking Smart Contract
Python
8
star
8

public-mpc-wallet

Rust
8
star
9

lottery-round-1

Methodology for determining lottery winners and lottery results.
JavaScript
8
star
10

ramp-widget-sdk

Include a Nash fiat ramp widget in any webpage.
TypeScript
6
star
11

openlimits-python

OpenLimits exchange SDK in Python. Provides uniform API support for multiple cryptocurrency exchanges
Rust
5
star
12

openlimits-java

Rust
3
star
13

nash-react-starter

JavaScript
3
star
14

nash-rust

Nash libraries and tools in Rust
Rust
3
star
15

nashlink-plugins-and-sdks

Nash Link official documentation, platform plugins and language SDKs
PHP
3
star
16

python-makerbot

Python
2
star
17

base58check

Elixir
1
star
18

nex-token

NEX Token Smart Contract
Python
1
star
19

ico-round2-lottery

NEX ICO Round 2 Lottery
JavaScript
1
star
20

openlimits-csharp

C#
1
star
21

third-party-fiat-ramps

Example integration with Nash third-party fiat ramps
JavaScript
1
star