Skip to content

docs: clarify on_failure_policy defaults and three-strategy error model #18

Description

@kination

Summary

DagSpec.on_failure already supports three values (:halt, :continue, :skip_dependents) but the intended semantics, default behavior, and practical guidance are not clearly documented.

Clarification Needed

Policy Behavior
:halt Fail the entire run immediately. All running tasks are cancelled. Default.
:continue Skip the failed task's direct dependents. Independent branches keep running. Run completes with partial results.
:skip_dependents Alias for :continue (kept for YAML readability).

The distinction matters for complex DAGs with parallel branches. A failure in branch A should not block branch B when :continue is set.

Action Items

  • Add inline comments to DagSpec struct documenting each policy value (done in mvp.md)
  • Add ExDoc @doc to DagSpec module explaining the three strategies
  • Add test cases in engine_test.exs for :continue and :halt with a branching DAG
  • Document in user-facing YAML reference

References

  • Design doc: docs/plans/2026-03-05-levicon-mvp.md (DagSpec schema, Engine handle_info({:task_failed}))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions