Propagation
Propagation is how signals move through the NTL network. Unlike traditional routing (where a router looks up a destination in a table), NTL propagation is emergent — signals flow through the synapse topology based on relevance, weight, and activation patterns.Propagation Model
Think of dropping a stone in water. The ripple propagates outward, weakening with distance. Obstacles deflect it. Channels concentrate it. NTL propagation works similarly, but through a weighted graph instead of a 2D surface. When a node fires (processes a signal), the propagation engine decides:- Should this signal propagate further? (TTL, scope)
- Which synapses should carry it? (relevance, weight)
- How should the signal be modified? (weight attenuation)
Propagation Strategies
Flood
The signal propagates to all active synapses. Simple but expensive. Used for discovery signals and emergency broadcasts.Weighted
The signal propagates to synapses above a weight threshold, strongest first. This is the default strategy — it naturally routes signals through the most-used paths.Targeted
The signal is directed toward a specific node or set of nodes. The propagation engine finds the best path through the topology. Used for correlated responses and direct communication.Gradient
The signal follows a gradient — propagating toward nodes that have historically handled similar signal types. This creates emergent specialization, where certain paths become optimized for certain signal types.Path Selection
When a node needs to propagate a signal, it selects paths using a scoring function:Weight Attenuation
As signals propagate, their weight decreases. This prevents signals from propagating indefinitely and creates natural locality — signals are strongest near their origin and weaken with distance.- After 1 hop: 0.9
- After 3 hops: 0.729
- After 5 hops: 0.590
- After 10 hops: 0.349
Time-to-Live (TTL)
Every signal has a TTL — the maximum number of hops it can traverse. TTL prevents infinite propagation in cyclic topologies.Trace
Signals carry a trace — an ordered list of node IDs they’ve visited. The trace serves multiple purposes:- Loop prevention — Nodes check if they’re already in the trace and skip
- Path learning — Nodes can form new synapses with nodes in the trace
- Debugging — The trace shows the exact path a signal took
- Response routing — Targeted responses can follow the trace back
Signal Deduplication
In a mesh topology, the same signal may arrive at a node via multiple paths. The propagation engine deduplicates by signal ID:SiafuDB Interaction
During propagation, signals can optionally deposit state into SiafuDB:- Data signals can write their payload to the local graph store
- Event signals can create graph edges representing state transitions
- Query signals can read from the local store and emit response signals