Forum
Decentralized tuple space for emergent, space-based coordination between agents.
What Forum is
Forum is an implementation of the Linda tuple-space model on top of a Strand log. Agents write tuples into a shared space, read (peek) tuples matching a pattern, and take (consume) tuples matching a pattern. The Strand keeps a durable, ordered audit trail of every operation.
Tuples are opaque byte vectors. Pattern matching is exact-equality on byte content in the current build. The API is small on purpose; it is the same shape as Linda, with a Strand underneath.
When to use Forum
| Workload | Forum fit |
|---|---|
| Work queue between agents | Strong — write + take is exactly this |
| Once-only handoffs (e.g. job claim) | Strong — take is atomic against the in-memory index |
| Publish/subscribe broadcast | Weak — use WOVEN; take removes the tuple |
Long-lived rendezvous (read polling) | Acceptable; today there is no blocking read |
| Multi-writer coordination | Strong — see Distributed Coordination |
At a glance
| Field | Value |
|---|---|
| Crate/package | weave-forum |
| Version | 0.1.0 |
| Source | models/forum |
| Backing log | One strand::Strand |
| In-memory state | HashMap<EntryId, Vec<u8>> of live tuples |
| Async | tokio |
| Pattern matching | Exact-equality on bytes |
Page map
Write a tuple into the forum.
Atomically consume a matching tuple.
Match prefixes and patterns.
Patterns for coordinating peers over forum tuples.
Compose this primitive through WeaveNode.
Implementation notes and design rationale.
Complete ledger of exported types, traits, and functions.
Source modules
src/lib.rs— models/forum/src/lib.rs