LangEx.Checkpoint (LangEx v0.11.3)

Copy Markdown View Source

Data structure representing a saved graph execution snapshot.

Persisted by checkpointer implementations after each super-step, enabling pause/resume, time-travel, and fault recovery.

next_nodes holds full work entries — node names or %LangEx.Send{} structs — so Send payloads survive crash-continue and interrupt-resume (format version 2). Version 1 checkpoints, which stored node names only, still load and resume; only Send payloads from that era are unrecoverable.

Summary

Functions

Current checkpoint format version, persisted with every checkpoint.

Builds a new checkpoint with an auto-generated ID and timestamp.

Types

t()

@type t() :: %LangEx.Checkpoint{
  checkpoint_id: String.t(),
  created_at: DateTime.t(),
  metadata: map(),
  next_nodes: [atom() | LangEx.Send.t()],
  parent_id: String.t() | nil,
  pending_interrupts: [map()] | nil,
  state: map(),
  step: non_neg_integer(),
  thread_id: String.t(),
  version: pos_integer()
}

Functions

format_version()

@spec format_version() :: pos_integer()

Current checkpoint format version, persisted with every checkpoint.

new(attrs)

@spec new(keyword()) :: t()

Builds a new checkpoint with an auto-generated ID and timestamp.