coolbeans

command module
v0.1.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2020 License: AGPL-3.0-only Imports: 6 Imported by: 0

README

Build Release Docker

Coolbeans

Coolbeans is a distributed replicated work queue service that implements the beanstalkd protocol.

Unlike a message queue, beanstalkd is a work queue that provides primitive operations to work with jobs.

Coolbeans primarily differs from beanstalkd in that it allows the work queue to be replicated across multiple machines. It uses the RAFT consensus algorithm to replicate the job state consistently across machines.

Motivation

Beanstalkd is a feature-rich and easy to use queue. Beanstalkd, however has a few drawbacks that include: (i) A lack of replication or high availability in terms of machine failures. (ii) There is no native sharding, (iii) No native support for encryption & authentication between the service & the client.

Given the initial setup of beanstalkd is simple, having a HA or sharded production setup is non-trivial. Our premise with Coolbeans is to provide a replicated beanstalkd queue followed by addressing the other issues incrementally. Read about our design approach here.

Key features

Releases

  • Static binary can be downloaded from the release pages.
  • Docker release images can be pulled from here.
  • Docker development images can be pulled from here.

Getting Started

How to contribute

Coolbeans is currently at alpha release quality. It is all about improving the quality of this by testing, testing & more testing.

Here are a few ways you can contribute:


icon by Llisole from the Noun Project

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1
beanstalkd
cmd
cluster
cmd
server/serverfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
* Package state provides an interface for a beanstalkd job, state for * job, tube and a connected client.
* Package state provides an interface for a beanstalkd job, state for * job, tube and a connected client.
* Package store provides an implementation for a accessing a Raft * backed job state machine store
* Package store provides an implementation for a accessing a Raft * backed job state machine store

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL