Expand description
Ready-made compositions: a layer, spelled with the link it runs over.
Every protocol here takes its link as a type parameter, which is what removed the four forked
session_* broadcast modules. The cost is that naming a stack means naming both halves, and the
payload the link carries is the layer’s business rather than the caller’s:
ReliableBroadcast<u32, SessionLink<reliable_broadcast::Data<u32>>>Data is an implementation detail of Algorithm 3.3 — the originator and sequence number it
deduplicates on — and a caller who wants “reliable broadcast over a session link, carrying
u32” should not have to know it exists. Each layer names it as Carried<P>, and the aliases
below use that to spell the whole stack in one type parameter.
§Why these live here and not beside either half
Putting OverSessions in reliable_broadcast would make that module name a particular link,
which is exactly the dependency the port was built to remove — a layer states its requirement as
Link and names no implementation. Putting it in session_link would invert the same problem.
A composition belongs to neither of the things it composes, so it lives in its own module.
Only the session stacks are named, because they are the ones that existed as forked modules and so have call sites wanting them. A stack over an application’s own link is spelled at its own call site with its own alias; there is nothing for this crate to name.
Type Aliases§
- Best
Effort Broadcast Over Sessions - Best-effort broadcast over a session link — what
session_best_effort_broadcastwas. - Eventual
Leader Detector Over Perfect Detection - Ω over the perfect failure detector — what this module was before
◇Pexisted. - Flooding
Consensus Over Sessions - Flooding consensus over a session link.
- Lazy
Probabilistic Broadcast Over Sessions - Lazy gossip over session links — both halves, the gossip and the recovery, over one session per peer pair.
- Majority
AckUniform Reliable Broadcast Over Sessions - Majority-ack uniform reliable broadcast over a session link — what
session_majority_ack_uniform_reliable_broadcastwas. - Probabilistic
Broadcast Over Sessions - Eager gossip over a session link — the real-world set’s form of Algorithm 3.9.
- Reliable
Broadcast Over Sessions - Eager reliable broadcast over a session link — what
session_reliable_broadcastwas. - Uniform
Reliable Broadcast Over Sessions - Uniform reliable broadcast over a session link — what
session_uniform_reliable_broadcastwas.