Jido.Signal.Journal.Persistence behaviour (Jido Signal v1.2.0)
View SourceDefines the behavior for Journal persistence adapters.
Summary
Types
@type checkpoint() :: non_neg_integer()
@type conversation_id() :: String.t()
@type dlq_entry() :: %{ id: String.t(), subscription_id: String.t(), signal: Jido.Signal.t(), reason: term(), metadata: map(), inserted_at: DateTime.t() }
@type error() :: {:error, term()}
@type signal_id() :: String.t()
@type subscription_id() :: String.t()
Callbacks
@callback clear_dlq(subscription_id(), pid() | nil) :: :ok | error()
@callback delete_checkpoint(subscription_id(), pid() | nil) :: :ok | error()
@callback get_checkpoint(subscription_id(), pid() | nil) :: {:ok, checkpoint()} | {:error, :not_found} | error()
@callback get_conversation(conversation_id(), pid() | nil) :: {:ok, MapSet.t()} | error()
@callback get_dlq_entries(subscription_id(), pid() | nil) :: {:ok, [dlq_entry()]} | error()
@callback get_signal(signal_id(), pid() | nil) :: {:ok, Jido.Signal.t()} | {:error, :not_found} | error()
@callback put_checkpoint(subscription_id(), checkpoint(), pid() | nil) :: :ok | error()
@callback put_conversation(conversation_id(), signal_id(), pid() | nil) :: :ok | error()
@callback put_dlq_entry(subscription_id(), Jido.Signal.t(), term(), map(), pid() | nil) :: {:ok, String.t()} | error()
@callback put_signal(Jido.Signal.t(), pid() | nil) :: :ok | error()