Storage boundary used by atomic object metadata operations.
Reads include the Concord modification revision needed for compare-and-swap.
Prefix scans intentionally expose values only; callers that need a revision
must read the individual key with get/2.
Summary
Types
@type key() :: binary()
@type page_entry() :: %{key: key(), value: term(), mod_revision: non_neg_integer()}
@type page_result() :: %{entries: [page_entry()], next_cursor: key() | nil}
@type read_result() :: %{value: term(), mod_revision: non_neg_integer()}
Callbacks
@callback get( key(), keyword() ) :: {:ok, read_result() | nil} | {:error, term()}
@callback list_page(binary(), key() | nil, pos_integer(), keyword()) :: {:ok, page_result()} | {:error, term()}
@callback resolve_operation( key(), keyword() ) :: {:ok, read_result() | nil} | {:error, term()}
@callback transaction( transaction_spec(), keyword() ) :: {:ok, term()} | {:error, term()}