Parrhesia.Storage.Events behaviour (parrhesia v0.12.0)

Copy Markdown

Storage callbacks for event persistence and query operations.

Summary

Types

context()

@type context() :: map()

count_result()

@type count_result() :: non_neg_integer() | %{optional(atom()) => term()}

event()

@type event() :: map()

event_id()

@type event_id() :: binary()

event_ref()

@type event_ref() :: %{created_at: non_neg_integer(), id: binary()}

filter()

@type filter() :: map()

query_opts()

@type query_opts() :: keyword()

reason()

@type reason() :: term()

Callbacks

count(context, list, query_opts)

@callback count(context(), [filter()], query_opts()) ::
  {:ok, count_result()} | {:error, reason()}

delete_by_request(context, event)

@callback delete_by_request(context(), event()) ::
  {:ok, non_neg_integer()} | {:error, reason()}

get_event(context, event_id)

@callback get_event(context(), event_id()) :: {:ok, event() | nil} | {:error, reason()}

purge_expired(query_opts)

@callback purge_expired(query_opts()) :: {:ok, non_neg_integer()} | {:error, reason()}

put_event(context, event)

@callback put_event(context(), event()) :: {:ok, event()} | {:error, reason()}

query(context, list, query_opts)

@callback query(context(), [filter()], query_opts()) ::
  {:ok, [event()]} | {:error, reason()}

query_event_refs(context, list, query_opts)

@callback query_event_refs(context(), [filter()], query_opts()) ::
  {:ok, [event_ref()]} | {:error, reason()}

vanish(context, event)

@callback vanish(context(), event()) :: {:ok, non_neg_integer()} | {:error, reason()}