Add a ClusterRegistry that maps human-readable names to (ActorAddress, NodeId) pairs, replicated across the cluster via SWIM gossip piggyback. Uses last-writer-wins semantics with timestamp > generation > node_id tie-breaking, and tombstone-based unregistration with configurable GC. Key design: DistributedNode intercepts piggyback bytes on all outgoing/incoming SWIM messages, wrapping them in a PiggybackPayload that carries both membership updates and registry entries. SwimNode and DisseminationQueue remain untouched. - New: crates/distribution/src/registry.rs (ClusterRegistry, pack/unpack helpers) - Modified: node.rs (register_name/unregister_name/resolve_name API, piggyback interception, node death tombstoning) - Modified: snapshot.rs (RegistryEntryInfo in DistributionNodeSnapshot) - 12 behavioral tests in crates/distribution/tests/registry.rs - Remove CLAUDE/ from git tracking, add to .gitignore Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
17 lines
234 B
Text
17 lines
234 B
Text
**/target
|
|
**/node_modules/
|
|
.vscode/
|
|
.venv
|
|
__pycache__
|
|
fuzz/artifacts/**
|
|
corpus
|
|
|
|
# Analysis artifacts (depgraph + spectral)
|
|
**/deps.dot
|
|
**/deps.html
|
|
docs/architecture.dot
|
|
docs/architecture.html
|
|
|
|
# Claude session files
|
|
CLAUDE/
|
|
.claude/
|