This module specifies the adapter API that an adapter is required to implement.
config() :: map()
expiry() :: non_neg_integer()
key() :: any()
t() :: module()
value() :: any()
delete(config(), key()) :: {:ok, value()} | {:error, any()}
get(config(), key()) :: {:ok, value()} | {:error, any()}
set(config(), key(), value()) :: {:ok, value()} | {:error, any()}
set(config(), key(), value(), expiry()) :: {:ok, value()} | {:error, any()}
start_link(config()) :: config()