DAG Architecture¶
The DAG stack separates semantic truth, execution, retained evidence, orchestration, and process presentation. That split lets a graph keep the same meaning across execution modes while making backend limits and evidence quality explicit.
Ownership And Direction¶
flowchart LR
cli["bijux-dag-cli"] --> app["bijux-dag-app"]
app --> runtime["bijux-dag-runtime"]
app --> core["bijux-dag-core"]
app --> artifacts["bijux-dag-artifacts"]
runtime --> core
runtime --> artifacts
testkit["bijux-dag-testkit"] -. test support .-> core
testkit -. test support .-> runtime
testkit -. test support .-> artifacts
| Owner | Decides | Must not decide |
|---|---|---|
bijux-dag-core |
graph model, validation, canonical identity, domain errors, and planning inputs | process execution, storage, or CLI rendering |
bijux-dag-runtime |
planning, scheduling, backends, execution state, cache/replay inputs, and runtime diagnostics | graph schema meaning or command presentation |
bijux-dag-artifacts |
run-directory types, manifests, integrity, artifact IO, and retention mechanics | scheduler outcomes or route policy |
bijux-dag-app |
command routes, use-case composition, response payloads, and operator workflows | lower-layer semantic reinvention |
bijux-dag-cli |
argument decoding, stream writing, and process exit | application or runtime behavior |
bijux-dag-testkit |
reusable fixtures and consumer-facing test support | production behavior |
Route A Change¶
| Change | Architecture authority | First proof boundary |
|---|---|---|
| graph field, validation, or fingerprint | Module Map and Dependency Direction | graph identity and fingerprint contracts |
| scheduler, node execution, or state transition | Execution Model, Runtime Execution Flow, and Runtime Concurrency Boundaries | scheduler determinism, execution, and state-machine contracts |
| shell, container, batch, or modeled backend | Engine Backend Responsibilities and Execution Modes and Coordination Boundaries | backend capability and execution-mode contracts |
| run manifest, artifact, import/export, or integrity | State and Persistence and Storage Layout Ownership | artifact conformance, resilience, lineage, and hardening contracts |
| replay, diff, inspect, or response envelope | Integration Seams and Error Model | application route and semantic replay contracts |
| public command or process behavior | Code Navigation | generated CLI reference and binary/application parity |
Cross-Layer Invariants¶
- Graph identity is independent of the operator's working directory and other ambient repository state.
- Runtime state transitions cannot make incomplete work appear complete.
- Artifact integrity and lineage are verified before replay or comparison claims are accepted.
- Backend capability is explicit; unsupported behavior fails or reports a bounded model rather than silently degrading.
- Application routes preserve lower-layer reason codes and unknown or incomplete states.
- The executable remains a thin process boundary over application behavior.
Stable Versus Modeled Surfaces¶
Architecture presence is not release support. A backend type, simulation route, or coordination model can exist for contract development without belonging to the stable default command surface. The Release Boundary, Support Matrix, and Known Limitations decide what operators can rely on in the current release.
Use Architecture Risks when a change can weaken identity, state, integrity, backend honesty, or replay conclusions. Use the Command Surface for caller-visible behavior.