Skip to content

Reference ​

This section is for developers already using Pulse who need exact behavior or integration boundaries. Steps and complete programs are in the guides. Reference pages cover lifecycle, errors, checkpoint protocols, and migration.

Version scope ​

These documents use the current main API object model as their baseline; performance, SQLite, recovery and historical comparisons are consolidated in the unified production comparison. See migration for upgrade differences.

Find a contract ​

QuestionPage
Current formal-release and historical execution, storage and recovery costsUnified production comparison
When definitions seal, which states exist, how often callbacks occurLifecycle
What errors mean and whether to change declarations or handle a runtime failureErrors
When outputs are confirmed and published, what recovery restores, how retry budgets persistCheckpoints
How to migrate from v0.4.1 or transitional development APIsMigration
Which API differences exist between v0.5.0 and current mainMigration

Objects and interfaces ​

Object or entryResponsibilityUsage
GraphReusable definition, ports, static mounts, default configurationNew, DeclareInput/Output, Add, Sub, Validate
InputsExternal inputs for one runSeed, SkipSeed
ExecutionOne run's states, slots, error, and cancellationNewExecution, Start, Wait, Cancel
ReadOutputDeclared outputs after successful finalizationCheck error first, then handle the three states
TopologyDefinition structure and static problemsTopology, Mermaid; no execution or sealing
SnapshotValue-free state sample of one executionExecution.Snapshot; not a recovery plan
ObserverLifecycle callbacksWithObserver or WithExecObserver
CheckpointHooksSynchronous reliable confirmation and recovery bridgeWithExecCheckpoint, usually integrated by Durable

Ordinary hosts need only the root package. Record adaptation and YAML assembly live in pulse/observe and pulse/yaml; dependencies always point from these packages toward the root. The independent Durable layer owns storage, codecs, persistent RunIDs, and run ownership.

Inspection and troubleshooting order ​

First confirm the version, then identify the stage: definition assembly, per-run inputs, start validation, node execution, output reading, or checkpoint recovery. Error names and states have precise meaning only with these conditions established.

  • Missing sources, invalid outputs, or dependency cycles: fix structure and validate again.
  • Required run input omitted: prepare complete Inputs and create a new execution.
  • Normal skipped state: follow the interface's absence policy; the run may succeed.
  • Real failure or cancellation: preserve the cause, wait for every node to terminate, then decide the business follow-up.
  • Uncertain reliable confirmation: stop publication and recover from authoritative persistent records.

Follow package documentation for complete public symbol types. This reference does not replace historical design documents. Design background is available in the repository's current core design and object model.

Next steps ​

Start with lifecycle for execution control or errors for failure handling. If upgrading a project, read migration before returning to the corresponding guide.

Development API documentation · Go 1.26+ · MIT