API Reference StatifierPersistence v#0.1.0

Copy Markdown View Source

Modules

Durable stepper and storage adapters for Statifier.

Compile-time Ecto configuration on the host's own module (ADR-0002).

The resolved configuration behind use StatifierPersistence.Ecto.

Behaviour a surrogate-key scheme implements for the Ecto layer.

Database-assigned auto-increment keys (ADR-0002 decision 2).

RFC 9562 UUIDv7 keys (ADR-0002 decision 2).

The default key generator: k-sortable UXID strings (ADR-0002 decision 2).

Versioned migrations for this package's tables, in the Oban.Migration mold: the host writes one ordinary migration that delegates here, and later package versions ship higher-numbered migration modules the same call picks up.

V01 of the package DDL: the charts, positions, and runs tables per ADR-0002 (as amended) and the storage contract's field set (ADR-0003 decision 3).

The seam through which a stepped run's effects reach the host (ADR-0004 decision 4).

The host-facing view of a durable run: what state is this run in - never what its bytes are. The position blob stays on the stored record (ADR-0004 decision 1), loaded only through the guarded StatifierPersistence.Storage.load_run_position/3 path; this struct carries the fields a host reads to decide what to do with a run.

The run lifecycle: create and step durable runs with no live Session process, the loop this package exists to package.

The per-run serialization strategy behaviour (ADR-0004 decision 5): the seam through which concurrent deliveries to one run are ordered.

The default StatifierPersistence.Serialization strategy (ADR-0004 decision 5): per-run ordering as the storage adapter's own lock.

The guarded entry point from a storage adapter to a Statifier.MachineState.t().

The storage contract: opaque blobs keyed by engine identities.

The Ecto StatifierPersistence.Storage.Adapter: the storage contract over the schemas a host generates with use StatifierPersistence.Ecto (ADR-0002), against the tables the versioned migrations helper creates. Requires the optional ecto_sql dependency (ADR-0005).

The reference StatifierPersistence.Storage.Adapter: an Agent holding three maps - charts keyed by content hash, positions keyed by session id, and runs keyed by run id.

Tiny compiled charts for this package's own tests and for the conformance template (ADR-0003 decision 5).

The conformance suite every StatifierPersistence.Storage.Adapter must pass. Ships in lib/ (ADR-0003 decision 5, st-ADR-0053's shape) so an adapter in another package runs the identical suite