Behaviour for pluggable cursor persistence backends.
@callback delete(item_id :: String.t()) :: :ok
@callback get(item_id :: String.t()) :: String.t() | nil
@callback put(item_id :: String.t(), cursor :: String.t()) :: :ok