Single-node ETS implementation of Attesto.PresentationSessionStore.
Presentation sessions live in a public named ETS table owned by a
GenServer. complete/2 runs inside the owner process and atomically guards
the pending to completed transition on status and expiry. Concurrent
submissions therefore have exactly one possible winner on this node.
This is a per-node store. A multi-node deployment MUST use a shared store,
or explicitly acknowledge the limitation with
multi_node_acknowledged?: true.
Start options
:sweep_interval_ms(default30_000) - how often expired entries are deleted.:multi_node_acknowledged?(defaultfalse) - permit this per-node store to start on a clustered BEAM.
Wiring
children = [Attesto.PresentationSessionStore.ETS]
Summary
Functions
@spec reset() :: :ok
Clear every entry. Test-facing.
@spec start_link(keyword()) :: GenServer.on_start()