Squidie.Runtime.Journal.Starter (squidie v0.1.2)

Copy Markdown View Source

Journal-backed workflow start boundary for the Jido-native runtime.

This module resolves the public Squidie workflow contract, plans initial runnables through Runic, appends durable run and run-index facts to Jido.Storage, then uses WorkflowAgent and DispatchAgent as rebuildable coordinators to schedule dispatch attempts from the journal.

The journal runtime can execute normal action steps, immediate built-in :log steps, built-in :wait steps in transition and dependency workflows, and manual :pause or :approval boundaries. Manual boundaries persist inspectable intervention state and can be resumed or reviewed through journal manual controls. Callers enter this path explicitly with runtime: :journal, journal_storage:, and optional queue or clock overrides. No Jido primitive is required in workflow authoring.

Summary

Functions

Starts a workflow run by appending Jido journal facts and scheduling dispatch.

Starts a runtime-authored workflow spec by appending journal facts and scheduling dispatch.

Types

start_error()

@type start_error() ::
  {:invalid_payload, Squidie.Workflow.Definition.payload_error_details()}
  | Squidie.Workflow.Definition.load_error()
  | Squidie.Workflow.Definition.trigger_error()
  | {:invalid_option,
     {:journal_storage, nil}
     | {:now, term()}
     | {:queue, term()}
     | {:run_id, term()}}
  | term()

Functions

start_run(workflow, trigger_name, payload, opts)

@spec start_run(module(), atom() | nil, map(), keyword()) ::
  {:ok, Squidie.ReadModel.Inspection.Snapshot.t()}
  | {:ok,
     {:duplicate_schedule_start, Squidie.ReadModel.Inspection.Snapshot.t()}}
  | {:error, start_error()}

Starts a workflow run by appending Jido journal facts and scheduling dispatch.

The returned snapshot is rebuilt from the same journal-backed read model used by Squidie.inspect_run/2 with read_model: :read_model.

start_spec_run(spec, trigger_name, payload, opts)

@spec start_spec_run(
  Squidie.Workflow.Spec.t() | map(),
  atom() | nil,
  map(),
  keyword()
) ::
  {:ok, Squidie.ReadModel.Inspection.Snapshot.t()}
  | {:ok,
     {:duplicate_schedule_start, Squidie.ReadModel.Inspection.Snapshot.t()}}
  | {:error, start_error()}

Starts a runtime-authored workflow spec by appending journal facts and scheduling dispatch.