Scope and Boundaries¶
bijux-dag is a local-first workflow runtime that makes graph decisions,
execution decisions, and retained evidence inspectable. Its product promise is
not “run anything anywhere.” It is narrower and more useful: validate a
workflow before execution, make backend capability differences explicit, and
retain enough evidence to explain what happened afterward.
Use this page to decide whether a workflow belongs inside the supported product boundary before choosing a command or package.
The Product Boundary¶
flowchart LR
Definition["Workflow definition"]
validated_graph["Validated graph<br/>canonical identity and plan"]
Runtime["Bounded execution<br/>local, Kubernetes, or SLURM"]
Evidence["Retained evidence<br/>run, artifact, trace, and cache records"]
Decision["Operator decision<br/>inspect, replay, diff, or verify"]
Definition --> validated_graph --> Runtime --> Evidence --> Decision
External["External authority<br/>cluster policy, identity, secrets,<br/>compliance, and fleet control"]
External -. constrains .-> Runtime
External -. governs .-> Evidence
The product owns the solid path. It records the inputs and decisions needed to reason about a run, but it does not replace the external authorities shown below the path.
Supported Outcomes¶
| You need to... | bijux-dag provides... |
The boundary remains... |
|---|---|---|
| reject an invalid or ambiguous workflow before work begins | parsing, validation, canonicalization, deterministic identity, and planning | domain correctness inside commands and scripts remains the workflow author's responsibility |
| execute a validated graph | local execution plus bounded Kubernetes Job and shared-filesystem SLURM adapters | cluster admission, credentials, quotas, node health, and scheduler availability remain external |
| understand a completed or failed run | retained run, node, artifact, trace, and cache evidence | evidence integrity does not prove the scientific or business validity of the computation |
| decide whether work can be reused | cache eligibility, verification, replay decisions, and explicit refusal reasons | changed tools, environments, or missing evidence can make equivalence unknown |
| compare executions | graph, run, and artifact-aware diff classifications | incomplete evidence is reported as incomplete or unknown, never promoted to equivalence |
| automate operator decisions | stable commands, documented exit behavior, and machine-readable JSON | callers must pin the supported release and honor schema and compatibility commitments |
Execution Backends¶
The supported backends do not claim identical semantics.
| Backend | Supported lane | Required environment | Important limit |
|---|---|---|---|
| local | stable | local process and filesystem access | commands execute with the privileges and isolation of the invoking environment |
| Kubernetes | stable for container nodes | kubectl, an accessible cluster, a persistent volume claim, and a shared root |
submits Kubernetes Jobs; it is not a cluster scheduler or control plane |
| SLURM | stable for the shared-filesystem lane | sbatch, sacct, and a run directory visible to submit and compute nodes |
does not promise generic HPC portability or non-shared storage transport |
Backend selection is therefore a capability decision, not a cosmetic switch. The runtime must reject unsupported requirements or expose a deliberate downgrade; it must not silently pretend that two environments are equivalent.
Explicit Non-Goals¶
bijux-dag does not currently promise:
- a hosted scheduler service or remote-worker control plane;
- generic HPC execution beyond the documented shared-filesystem SLURM lane;
- public enterprise, fleet, federation, or governance APIs;
- uniform isolation, identity, networking, or secret delivery across backends;
- proof that a command, model, or dataset is scientifically correct;
- replacement of organization-wide security, compliance, retention, or incident-management systems; or
- compatibility for every command present in the repository.
Experimental, simulated, and maintainer-only commands exist for deliberate development and contract work. Their presence is not a release claim. The Release Boundary defines those lanes precisely.
Failure And Evidence Semantics¶
The system keeps three statements separate:
- Execution state says whether work was accepted, started, completed, failed, or could not be classified.
- Evidence integrity says whether retained records and artifacts still match their recorded identities.
- Equivalence says whether available evidence is sufficient to classify two scopes as equivalent, drifted, incomplete, or unknown.
A successful process exit does not guarantee valid evidence. Valid evidence does not guarantee equivalent environments. Missing evidence never becomes a successful comparison by default.
Replay with --sandbox protects the source run from replay writes; it is not an
operating-system process sandbox. Workload isolation must come from the chosen
execution environment.
Choose The Next Contract¶
| Question | Continue with |
|---|---|
| Is this command or capability supported by the current release? | Release Boundary |
| Which crate is allowed to define this behavior? | Ownership Boundary |
| Which package should receive a change? | DAG Packages |
| What must remain compatible? | Compatibility Commitments |
| Which gaps are currently known? | Known Limitations |
| What is direction rather than a promise? | Future Direction |
Source Anchors¶
- release claims:
contracts/foundation/dag_release_truth_table.v1.json - graph semantics:
crates/bijux-dag-core/src/ - execution and replay:
crates/bijux-dag-runtime/src/ - operator workflows:
crates/bijux-dag-app/src/ - evidence integrity:
crates/bijux-dag-artifacts/src/