The storage contract Ussd.Record (and therefore session state) is built on.
Ship your own implementation (backed by Redis, :cachex, Mnesia, ...) and point
Ussd.Record at it via config :ussd, :cache, MyApp.UssdCache, or via
Ussd.use_store/2 per-request. The default, Ussd.Cache.ETS, is process-local and
fine for a single node; anything multi-node needs a shared backend.
Summary
Callbacks
Subtracts amount from key, treating an unset key as starting from 0, and returns the new value.
Deletes key.
Reads key, or default if it's unset or has expired.
Whether key is currently set (and not expired).
Adds amount to key, treating an unset key as starting from 0, and returns the new value.
Stores value under key. ttl, in seconds, is nil when the value should never expire on its own.
Types
@type key() :: String.t()
@type ttl() :: pos_integer() | nil
Callbacks
Subtracts amount from key, treating an unset key as starting from 0, and returns the new value.
@callback forget(key()) :: :ok
Deletes key.
Reads key, or default if it's unset or has expired.
Whether key is currently set (and not expired).
Adds amount to key, treating an unset key as starting from 0, and returns the new value.
Stores value under key. ttl, in seconds, is nil when the value should never expire on its own.