ETS-backed Raxol.Agent.ThreadLog adapter.
Stores events in a named ETS ordered_set keyed on
{thread_id, sequence}. Iteration is naturally sequence-ordered
within a thread; list/3 walks the table starting at
{thread_id, from} and stops when the thread changes or the
limit is reached.
Sequence allocation uses a sibling ETS set keyed on thread_id
with :ets.update_counter/3 for atomic per-thread increments.
Counters live in {<table>_seq} (e.g.
:raxol_agent_threads_seq by default).
Config
%{table: :my_agent_threads}Defaults to :raxol_agent_threads. Two agents sharing the same
table name share its events; isolate per-agent (or per-suite of
agents) by passing distinct names.
Lifetime
Both tables live for the duration of the BEAM. Not supervised,
not persisted. Use Raxol.Agent.ThreadLog.Postgrex when events
must outlive the BEAM or be shared across nodes.
Summary
Functions
Ensure both the event table and its sibling sequence counter exist.