Jellyfish in-memory broker message.
Philosophy:
A basic message broker that can solve the most pressing development problems. The main idea: scale without pain.
Design:
[SENDING]: The messaging design based on grpc format.
[TOPIC]: The topic is a route (place) where a message will be sent and where it will be stored.
[PARTITION]: The partition is a way to scale a broker.
Quick Start:
Make config from template:
cat configs/broker.yaml.template >> configs/broker.yaml
Start broker:
go run cmd/broker/main.go
or:
make run-broker
build:
make build-broker
A Config by once file looks like this:
addr: 'localhost:7654'
A Config by slaves file looks like this:
addr: 'localhost:7654'
slaves:
- 'localhost:7653'
- 'localhost:7652'
- 'localhost:7651'
If you want start with replicas
- run slave broker
- run master broker with config slaves
Future:
- add the ability to save sent messages
- add smarter reallocation implementation
- better consider data replication properties