# `ADK.Session.Store`
[🔗](https://github.com/zeroasterisk/adk-elixir/blob/main/lib/adk/session/store.ex#L1)

Behaviour for session persistence stores.

Implement this behaviour to add a custom persistence backend.

# `delete`

```elixir
@callback delete(app_name :: String.t(), user_id :: String.t(), session_id :: String.t()) ::
  :ok
```

# `list`

```elixir
@callback list(app_name :: String.t(), user_id :: String.t()) :: [String.t()]
```

# `load`

```elixir
@callback load(app_name :: String.t(), user_id :: String.t(), session_id :: String.t()) ::
  {:ok, map()} | {:error, :not_found}
```

# `save`

```elixir
@callback save(session :: ADK.Session.t()) :: :ok | {:error, term()}
```

---

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