Skip to main content

Node Manager

What it does

The node manager maintains the registry of available remote execution nodes and handles dispatch to them. When the execution manager needs to run a workload on a remote node, it delegates to the node manager.

Node registry

The node registry tracks all registered nodes:

  • Node ID and capabilities
  • Node class (trust level)
  • Current health status (based on heartbeats)
  • Last seen timestamp

When selecting a node for dispatch, the node manager considers:

  • Whether the node is healthy (recent heartbeat)
  • Whether the node's trust class is appropriate for the workload
  • Whether the node has the required capabilities

Dispatch process

When the execution manager requests a remote dispatch:

  1. Select a node — find a healthy node appropriate for the workload
  2. Create a dispatch request — build the structured dispatch artifact
  3. Generate a nonce — create a unique one-time dispatch identifier
  4. Compute a payload hash — create a hash covering the intent, artifact, node ID, dispatch ID, and expiry
  5. Record the nonce — mark the nonce as consumed so it cannot be reused
  6. Send the dispatch — deliver the signed dispatch request to the node agent

Dispatch security

Each dispatch request is signed and includes:

  • Dispatch nonce — a unique value that the node agent will reject if it has seen before
  • Dispatch payload hash — a hash that covers the key fields of the request; any modification will be detected

If an attacker intercepts a dispatch request, they cannot:

  • Replay it — the nonce is consumed on first receipt
  • Modify the parameters — the payload hash would no longer match
  • Redirect it to another node — the node ID is covered by the hash

Node health monitoring

Nodes send regular heartbeats to the node manager. If a node stops sending heartbeats:

  • It's marked as unhealthy in the registry
  • It's excluded from dispatch selection
  • An alert is triggered for the operator

When a node comes back online and resumes heartbeats, it's automatically returned to healthy status.

Node classes and trust

The node class determines what workloads a node can receive and what trust level it operates at:

ClassTrustTypical configuration
local_nodeHighestSame operator, same network segment
trusted_personal_nodeHighKnown owner, controlled environment
restricted_utility_nodeMediumShared resource, limited to specific tool types
high_risk_isolated_nodeLowAir-gapped or high-isolation environment

High-risk workloads are dispatched to lower-trust nodes where containment is tighter.