Docket.Event (docket v0.1.1)

Copy Markdown View Source

Append-only fact about run lifecycle, node execution, channel updates, edge triggers, and interrupts.

Events are built at update barriers and persisted with committed transitions. The v0.1 event types are:

  • :run_initialized, :run_completed, :run_failed, :run_cancelled
  • :checkpoint_committed (metadata-only durable checkpoint history)
  • :node_completed, :node_failed (one :node_failed per failed attempt)
  • :channel_updated (payload carries the new version or the writer node IDs depending on the write's origin, never the value)
  • :edge_triggered
  • :interrupt_requested, :interrupt_resolved

Summary

Types

t()

@type t() :: %Docket.Event{
  channel_id: String.t() | nil,
  metadata: map(),
  node_id: String.t() | nil,
  payload: map(),
  run_id: String.t(),
  seq: pos_integer(),
  step: non_neg_integer(),
  task_id: String.t() | nil,
  timestamp: DateTime.t(),
  type: type()
}

type()

@type type() ::
  :run_initialized
  | :run_completed
  | :run_failed
  | :run_cancelled
  | :checkpoint_committed
  | :node_completed
  | :node_failed
  | :channel_updated
  | :edge_triggered
  | :interrupt_requested
  | :interrupt_resolved