Coolbeans is currently at alpha release quality. It is all about improving the quality by adoption and testing.
By participating in this project you agree to abide by the code of conduct.
This section walks through the process of building the source and running coolbeans.
-
- Coolbeans is written in golang, it requires go version 1.13 or newer. I prefer to use go version manager to manage multiple go versions.
- Ensure
$GOPATH/binis added to your path.
-
- A Dockerfile is provided.
-
Install Protocol Buffer Compiler (protoc) & the Go plugin (protoc-gen-go)
- The project depends on protocol buffers and uses the Grpc library.
- Ensure you have
protoc&protoc-gen-goinstalled and accessible in your paths.
The Makefile provides different target options to build and run from source.
To explore these options, run make which shows all possible targets:
make
For example: To generate a statically linked binary for the local operating-system.
make build
Coolbeans typically runs as a two processes, refer the design for more detail.
Run a single node cluster. Note this creates two processes, a cluster-node process and beanstalkd proxy:
make run-single
Run a three node cluster. Note this spawns four processes, three cluster-node processes and beanstalkd proxy.:
make run-cluster
Run a single process beanstalkd (no replication via Raft, the entire queue is in memory):
make run-beanstalkd
Run a three node cluster via docker-compose. Run this prior to running docker-compose-up
make docker-compose-build
make docker-compose-up
Once done:
make docker-compose-down
Download and run a beanstalk client from here.
Some client I tested with:
Run unit-tests
make test
Explore other test options by running make
Run an end to end test scenarios against a running cluster.
make test-e2e