Crate plumcast[−][src]
A message broadcasting library based on the Plumtree/HyParView algorithms.
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
Modules
metrics |
Prometheus metrics. |
Structs
Clock |
|
Error |
This crate specific |
LocalNodeId |
Identifier used for distinguish local nodes in a process. |
Message |
Broadcasted application message. |
MessageId |
Message identifier. |
Node |
Node that broadcasts and receives messages. |
NodeBuilder |
The builder of |
NodeId |
Identifier used for distinguish nodes in a cluster. |
PlumtreeSystem |
An implementation of |
Service |
A |
ServiceBuilder |
The builder of |
ServiceHandle |
A handle of a |
Enums
ErrorKind |
Possible error kinds. |
Traits
MessagePayload |
This trait allows the implementations to be used as the payload of broadcasting messages. |
Type Definitions
HyparviewNode |
HyParView node. |
HyparviewNodeOptions |
Options for HyParView nodes. |
PlumtreeNode |
Plumtree node. |
PlumtreeNodeOptions |
Options for Plumtree nodes. |
Result |
This crate specific |