Language
ADR-034: Job dependencies (single-parent A→B on ADR-029)¶
Status¶
Proposed — number claimed; full design tracked in #14 per roadmap decision D7 in the 0.7 roadmap.
Context¶
"Run B after A completes" currently requires the handler to insert the next job manually. ADR-029 already delivers transactional follow-up enqueues atomically with the parent's guarded finalization — the mechanism exists; what is missing is a declarative parking state and a failure policy.
Decision (to be developed)¶
InsertOpts::after(JobRef)parks B in the deferred backlog in awaiting_onstate.- A's guarded finalization transactionally promotes B (success) or applies B's declared
on_parent_failurepolicy:Cancel(default) |EnqueueWithContext|Discard. - Exactly one parent. Fan-in, fan-out, DAGs, and workflow state are non-goals (the PRD's "not a workflow engine" boundary; #81 guards it).
- TLA+ witness required for the promote-on-finalize race (parent finalizes concurrently with child cancel).
Relationship to other ADRs¶
Builds directly on ADR-029 (transactional follow-up jobs); composes with ADR-019 deferred storage; bounded by the ADR/PRD workflow non-goal.