Control and data paths
The Node opens the control connection outbound. Training metrics travel through the independent telemetry listener; they do not relay through the Node control channel. Both gateways currently run as separate Python processes. The independent collector is Rust. A future Rust gateway or LLM API proxy is an architectural extension, not a shipped inference-routing capability.What happens when you submit
- The CLI or console supplies recipe, source-archive or image-and-command input.
- The server validates and resolves the JobSpec, integration artifact, runtime image, resources, storage and policy. The immutable preview creates no Job.
- Confirmation supplies the preview ID, digest and stable retry key. Repeating the same confirmation returns the same Job receipt; editing the intent requires a new preview.
- The admitted Job waits for resources. A durable launch reservation owns the whole resource envelope before execution starts.
- The backend materializes the verified Job Capsule and completed inputs. On Node, all members Prepare before the durable Commit decision. Cold image preparation is asynchronous; uncertain ownership is reconciled before resources are released.
- The runner validates the pinned runtime and executes the integration artifact. Framework-specific code stays outside the control plane.
- Native TensorBoard/JSONL output can be collected independently. The configured SDK reporting path also remains available. The console reads bounded metric queries; completed artifacts carry verifiable manifests.
Backend execution
No backend fallback is implicit. A supported software contract is not proof of a certified GPU, network or storage deployment. Peer networking and shared output storage must be validated separately from the control connection.