1

I am new to Erlang as well as distributed computing. We are a small team who is trying to build a small messaging server. One of the thing we are looking at how do we manage cluster state - we came across few custom implementation in Erlang open source projects such as Riak, rabbitMq, ejabbered and Vernemq.

It seems Erlang community is moving to use gossip protocol for cluster management - i see following recent post on RabbitMQ ( https://groups.google.com/forum/#!searchin/rabbitmq-users/gossip$20protocol/rabbitmq-users/jvQQy30kLTI/hIDFw94SddQJ

My question is - Is there any other way of doing cluster management apart from gossip protocol? and also what are the open source erlang implementation of gossip protocol. what are the considerations one need to have while considering erlang nodes management?

Thanks for your help.

tintin
  • 135
  • 2
  • 4

1 Answers1

1

I am not distributed computing expert either, so my answer may be questionable, but anyway. Everything depends on what your cluster state is and what requirements do you have.

If you have to garantee consistency of a state among each cluster participant you will end up with some kind of distributed consensus mechanism, like zk, paxos or raft.

If you need high availability you will need some gossip-based protocol and make your app aware about possible data inconsistency (like Riak does with it's CRDT data types and vector clocks).

If you don't know what do you need I would go with first option as it is very easy from developer point of view. And would go to second option if I clearly understood that 1st option is not longer an option ;)

danechkin
  • 1,306
  • 8
  • 15