GoodAnalytics.Core.Sessions.LiveCache (GoodAnalytics v0.1.1)

Copy Markdown View Source

Optional in-memory fast path for live-session lookup.

Stores the latest known live session per {workspace_id, visitor_id} in a public ETS table. The DB remains authoritative; this cache is only a read optimization for callers that can safely confirm cached sessions.

Summary

Functions

Clears every entry.

Invalidate one key.

Creates the ETS table if it does not exist. Idempotent.

Returns {:ok, entry} or :miss.

Functions

clear()

@spec clear() :: :ok

Clears every entry.

delete(workspace_id, visitor_id)

@spec delete(Ecto.UUID.t(), Ecto.UUID.t()) :: :ok

Invalidate one key.

ensure_table()

@spec ensure_table() :: :ok

Creates the ETS table if it does not exist. Idempotent.

get(workspace_id, visitor_id)

@spec get(Ecto.UUID.t(), Ecto.UUID.t()) :: {:ok, map()} | :miss

Returns {:ok, entry} or :miss.

put(workspace_id, visitor_id, entry)

@spec put(Ecto.UUID.t(), Ecto.UUID.t(), map()) :: :ok

Write-through put.