Multicast Docker Harness
Runs a source and two receivers with lossless multicast, artifact capture, and checksum-based verification.
The examples/multicast-docker folder is a reproducible multicast harness built around nextmini_py. It launches Postgres, controller, one source node, and two receiver nodes in a dedicated Docker network.
This page focuses on running the harness. For lifecycle semantics and packet-level behavior, see Example: Multicast Flow Lifecycle and Multicast integration guide.
The source process creates a group, installs a star DAG from source to all receivers, waits for receiver readiness files, and sends a tensor payload. Each receiver joins the group, receives the payload losslessly, and writes a local artifact (receiver-<node>.bin). Shared metadata and outputs are written under examples/multicast-docker/artifacts.
Run
From the repository root:
cd examples/multicast-docker
docker compose up --buildThe default run uses:
- source node id
1 - receiver node ids
2,3 - group label
demo-multicast - automatic tensor generation when no
--tensor-pathis provided
Verification
Watch runtime logs:
cd examples/multicast-docker
docker compose logs -f controller source receiver_a receiver_bThen run the verification script from the repository root:
uv run examples/multicast-docker/scripts/verify_received_files.pyA passing run prints VERIFICATION PASSED: All receivers got identical data.
You can also inspect generated artifacts:
cd examples/multicast-docker
ls -lah artifacts
cat artifacts/group-info.json
cat artifacts/tensor-metadata.jsonCleanup
cd examples/multicast-docker
docker compose down --volumesRemove generated receiver payloads and metadata if you want a fully clean workspace:
cd examples/multicast-docker
rm -f artifacts/receiver-*.bin artifacts/group-info.json artifacts/tensor-metadata.json artifacts/receiver-ready-*.json