Behaviour for triggering DAG run actions (reset/requeue/dispatch).
This module delegates to the configured implementation module:
config :gust, :dag_run_trigger, Gust.DAG.Run.Trigger.Requeue
The configured module must implement this behaviour.
@type graph() :: term()
@type run() :: term()
@type task() :: term()
@callback dispatch_all_runs(term()) :: [term()]
@callback dispatch_run(run()) :: term()
@callback reset_run(run()) :: term()
@callback reset_task(graph(), task() | [task()]) :: {:ok, task()} | {:ok, [task()]} | {:error, term()}
@spec dispatch_run(run()) :: term()
@spec reset_run(run()) :: term()
@spec reset_task(graph(), task() | [task()]) :: {:ok, task()} | {:ok, [task()]} | {:error, term()}