[zeromq-dev] Distributed Event Bus
Pieter Hintjens
ph at imatix.com
Tue Feb 19 19:43:17 CET 2013
On Tue, Feb 19, 2013 at 6:40 PM, Ondrej Kupka <ondra.cap at gmail.com> wrote:
> ...
Basically you want to layer statefulness above ZRE, right? This is
something I wanted to address but haven't had time for yet.
The hardest part is ensuring consistency if you have multiple updates
at the same time, to the same data. If you don't care about this, just
hold a key=value table in each node, and when a new node joins, it can
ask a random node for a state dump, much like the simple Clone
versions. Easy to write on top of ZRE as an application.
If you want global consistency you have to first design a small
protocol for electing a leader. Perhaps the oldest node. Then when a
new node joins, it first discovers the leader, and then it asks the
leader for a snapshot. Then, every node when it has a new key=value,
sends this to the leader, which rebroadcasts it to everyone else.
In any case I'd build this on top of ZRE using the group pub-sub it
provides you.
-Pieter
More information about the zeromq-dev
mailing list