evoq_snapshot_adapter behaviour (evoq v1.14.1)

View Source

Snapshot store adapter behavior for evoq

Defines the interface for snapshot operations. Snapshots are used to optimize aggregate reconstruction by storing periodic state.

Summary

Callbacks

delete/2

-callback delete(StoreId :: atom(), StreamId :: binary()) -> ok | {error, term()}.

delete_at_version/3

-callback delete_at_version(StoreId :: atom(), StreamId :: binary(), Version :: non_neg_integer()) ->
                               ok | {error, term()}.

list_versions/2

-callback list_versions(StoreId :: atom(), StreamId :: binary()) ->
                           {ok, [non_neg_integer()]} | {error, term()}.

read/2

-callback read(StoreId :: atom(), StreamId :: binary()) ->
                  {ok, evoq_snapshot()} | {error, not_found | term()}.

read_at_version/3

-callback read_at_version(StoreId :: atom(), StreamId :: binary(), Version :: non_neg_integer()) ->
                             {ok, evoq_snapshot()} | {error, not_found | term()}.

save/5

-callback save(StoreId :: atom(),
               StreamId :: binary(),
               Version :: non_neg_integer(),
               Data :: map() | binary(),
               Metadata :: map()) ->
                  ok | {error, term()}.