plumcast

A message broadcasting library based on the Plumtree/HyParView algorithms

9 releases

0.1.5 Feb 20, 2019
0.1.4 Feb 19, 2019
0.1.3 Jan 30, 2019
0.1.0 Jul 28, 2018
0.0.3 Jul 21, 2018

31 downloads per month

MIT license

130KB
3K SLoC

plumcast

Documentation Build Status Code Coverage License: MIT

A message broadcasting library based on the Plumtree/HyParView algorithms.

Documentation

Properties

Pros

  • Nearly optimal message transmitting count
    • Usually messages are broadcasted via a spanning tree
    • Only the nodes interested in the same messages belong to the same cluster
  • Scalable
    • Theoretically, it can handle ten-thousand of nodes or more
  • High fault tolerance
    • Spanning trees are automatically repaired if there are crashed nodes
  • Dynamic membership
    • Nodes can be added to (removed from) a cluster at any time

Cons

  • No strong guarantee about connectivity of the nodes in a cluster
  • No strong guarantee about delivery count of a message
  • No guarantee about messages delivery order

If some of the above guarantees are mandatory for your application, it is need to be provided by upper layers.

References

Dependencies

~4.5MB
~88K SLoC