# `Runic.Runner.Store.ETS`
[🔗](https://github.com/zblanco/runic/blob/main/lib/runic/runner/store/ets.ex#L1)

Default in-memory persistence adapter using ETS.

Survives worker restarts within the same VM but not VM restarts.
The GenServer owns the ETS tables, while Store callbacks operate
on the :public tables directly for zero-overhead reads and writes.

When the Runner is started without an explicit `:store`, it will start this
ETS store automatically. If you configure `store: Runic.Runner.Store.ETS`
explicitly, start this module in your supervision tree before the Runner.

## Stream Semantics

Supports event-sourced `append/3` and `stream/2` via a second
`:ordered_set` ETS table keyed by `{workflow_id, sequence}`.
A counter table tracks the next sequence number per workflow.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
