Skip to content

baibikov/jellyfish

Repository files navigation

Jellyfish in-memory broker message.

PkgGoDev GitHub release Go Report Card

Jellyfish

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