Behaviour for session storage backends.
Implementations manage session lifecycle (create, get, list, delete) and event persistence (append_event). The InMemorySessionService provides the default implementation.
Summary
Callbacks
Appends an event to a session.
Creates a new session.
Deletes a session.
Retrieves a session by identity.
Lists sessions matching criteria.
Types
@type opts() :: keyword()
Callbacks
@callback append_event(server :: GenServer.server(), ADK.Session.t(), ADK.Event.t()) :: :ok | {:error, term()}
Appends an event to a session.
@callback create(server :: GenServer.server(), opts()) :: {:ok, ADK.Session.t()} | {:error, term()}
Creates a new session.
@callback delete(server :: GenServer.server(), opts()) :: :ok | {:error, term()}
Deletes a session.
@callback get(server :: GenServer.server(), opts()) :: {:ok, ADK.Session.t()} | {:error, term()}
Retrieves a session by identity.
@callback list(server :: GenServer.server(), opts()) :: {:ok, [ADK.Session.t()]} | {:error, term()}
Lists sessions matching criteria.