baibikov / jellyfish

Define and run in-memory broker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Define and run in-memory broker

License:Apache License 2.0


Languages

Language:Go 99.5%Language:Makefile 0.5%