ADK.Session.Service behaviour (adk_ex v1.1.0)

Copy Markdown View Source

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

opts()

@type opts() :: keyword()

Callbacks

append_event(server, t, t)

@callback append_event(server :: GenServer.server(), ADK.Session.t(), ADK.Event.t()) ::
  :ok | {:error, term()}

Appends an event to a session.

create(server, opts)

@callback create(server :: GenServer.server(), opts()) ::
  {:ok, ADK.Session.t()} | {:error, term()}

Creates a new session.

delete(server, opts)

@callback delete(server :: GenServer.server(), opts()) :: :ok | {:error, term()}

Deletes a session.

get(server, opts)

@callback get(server :: GenServer.server(), opts()) ::
  {:ok, ADK.Session.t()} | {:error, term()}

Retrieves a session by identity.

list(server, opts)

@callback list(server :: GenServer.server(), opts()) ::
  {:ok, [ADK.Session.t()]} | {:error, term()}

Lists sessions matching criteria.