Behaviour for resuming tasks that are parked on external wait events.
This module delegates to the configured implementation module:
config :gust, :dag_task_waiter, Gust.DAG.TaskWaiter.Repo
The configured module must implement this behaviour.
@type resume_opts() :: keyword()
@type task() :: term()
@callback clear_wait(task()) :: task()
@callback fail(task()) :: {:ok, task()} | {:error, term()}
@callback resume(term(), resume_opts()) :: {:ok, [task()]} | {:error, term()}