View Source Solvent.EventStore.Base behaviour (solvent v0.3.0)

The definition of an event store module.

Modules using this behavior can be used with the Solvent.EventStore module to publish and fetch events.

Link to this section Summary

Link to this section Types

@type event_id() :: String.t()
@type subscriber_id() :: String.t()

Link to this section Callbacks

Link to this callback

ack(event_id, subscriber_id)

View Source
@callback ack(event_id(), subscriber_id()) :: :ok
@callback delete(event_id()) :: :ok
@callback delete_all() :: :ok
@callback fetch(event_id()) :: {:ok, Solvent.Event.t()} | :error
@callback fetch!(event_id()) :: Solvent.Event.t()
@callback init() :: :ok
@callback insert(Solvent.Event.t(), [subscriber_id()]) :: :ok