ASM.Store behaviour (ASM v0.9.2)

Copy Markdown View Source

Persistence contract for event storage and replay.

Summary

Callbacks

append_event(pid, t)

@callback append_event(pid(), ASM.Event.t()) :: :ok | {:error, ASM.Error.t()}

list_events(pid, t)

@callback list_events(pid(), String.t()) ::
  {:ok, [ASM.Event.t()]} | {:error, ASM.Error.t()}

reset_session(pid, t)

@callback reset_session(pid(), String.t()) :: :ok | {:error, ASM.Error.t()}

Functions

append_event(store, event)

@spec append_event(pid(), ASM.Event.t()) :: :ok | {:error, ASM.Error.t()}

list_events(store, session_id)

@spec list_events(pid(), String.t()) ::
  {:ok, [ASM.Event.t()]} | {:error, ASM.Error.t()}

reset_session(store, session_id)

@spec reset_session(pid(), String.t()) :: :ok | {:error, ASM.Error.t()}