Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Run static distributed monitoring

Outcome

Run a two-stage addition program assigned across two named locations. The distribution graph assigns intermediate sum w to node A and final sum v to node B, with a directed A to B edge.

This walkthrough evaluates node A's local assignment from a timestamped input file and writes w to stdout. It is not a cross-process broker deployment; dynamic scheduling, ROS, SAT, and container-backed paths are not required.

Prerequisites

Run from the repository root with Rust/Cargo available. The DSRV program first adds x and y, then adds that intermediate result to z:

in x: Int
in y: Int
in z: Int
in c: Any
out w: Int
out v: Int

w = x + y
v = z + w

The repository stores the program as examples/simple_add_distributable.dsrv, the node assignment as examples/simple_add_distribution_graph.json, and the input values as examples/simple_add.input. No ROS feature or broker setup is needed for the node-A walkthrough.

Start node A

cargo run -- \
  examples/simple_add_distributable.dsrv \
  --input-file examples/simple_add.input \
  --output-stdout \
  --distribution-graph examples/simple_add_distribution_graph.json \
  --local-node A

--distribution-graph selects the predefined graph and --local-node A selects node A's localized projection. In the program shown above, node A owns w. The included input supplies two pairs of x and y values, so stdout is:

w[0] = 3
w[1] = 7

The command exits after producing both local results. To exercise node B separately, use an input trace that supplies its z and w dependencies; the checked-in simple_add.input supplies neither a z value nor a cross-process transport.

Current distributed-runtime boundary

The scheduler-owned CLI mode using --runtime distributed currently panics before processing the same program, input, and graph with:

Variable message types not set

It is therefore not presented as a successful runbook. This is an implementation limitation, not a readiness condition. Dynamic work assignment and ROS/SAT scheduling require their feature-specific environments; this page does not give them basic copy/paste commands.

Completion and semantics

The task is complete when the two w lines appear and the process exits. The localized run's stdout is a local observation. Distributed transports do not create a cross-node transaction or a promised total observation order.

For output routing and destination completion limits, see output architecture.