Commanded v0.15.1 Commanded.EventStore.Adapters.InMemory View Source
An in-memory event store adapter useful for testing as no persistence provided.
Link to this section Summary
Functions
Acknowledge receipt and successful processing of the given event received from a subscription to an event stream
Append one or more events to a stream atomically
Delete a previously recorded snapshop for a given source
Invoked when the server is started. start_link/3
or start/3
will
block until it returns
Read a snapshot, if available, for a given source
Record a snapshot of the data and metadata for a given source
Streams events from the given stream, in the order in which they were originally written
Create a persistent subscription to all event streams
Unsubscribe an existing subscriber from all event notifications
Link to this section Functions
Acknowledge receipt and successful processing of the given event received from a subscription to an event stream.
Callback implementation for Commanded.EventStore.ack_event/2
.
Append one or more events to a stream atomically.
Callback implementation for Commanded.EventStore.append_to_stream/3
.
Delete a previously recorded snapshop for a given source
Callback implementation for Commanded.EventStore.delete_snapshot/1
.
Invoked when the server is started. start_link/3
or start/3
will
block until it returns.
args
is the argument term (second argument) passed to start_link/3
.
Returning {:ok, state}
will cause start_link/3
to return
{:ok, pid}
and the process to enter its loop.
Returning {:ok, state, timeout}
is similar to {:ok, state}
except handle_info(:timeout, state)
will be called after timeout
milliseconds if no messages are received within the timeout.
Returning {:ok, state, :hibernate}
is similar to
{:ok, state}
except the process is hibernated before entering the loop. See
c:handle_call/3
for more information on hibernation.
Returning :ignore
will cause start_link/3
to return :ignore
and the
process will exit normally without entering the loop or calling c:terminate/2
.
If used when part of a supervision tree the parent supervisor will not fail
to start nor immediately try to restart the GenServer
. The remainder of the
supervision tree will be (re)started and so the GenServer
should not be
required by other processes. It can be started later with
Supervisor.restart_child/2
as the child specification is saved in the parent
supervisor. The main use cases for this are:
- The
GenServer
is disabled by configuration but might be enabled later. - An error occurred and it will be handled by a different mechanism than the
Supervisor
. Likely this approach involves callingSupervisor.restart_child/2
after a delay to attempt a restart.
Returning {:stop, reason}
will cause start_link/3
to return
{:error, reason}
and the process to exit with reason reason
without
entering the loop or calling c:terminate/2
.
Callback implementation for GenServer.init/1
.
Read a snapshot, if available, for a given source.
Callback implementation for Commanded.EventStore.read_snapshot/1
.
Record a snapshot of the data and metadata for a given source
Callback implementation for Commanded.EventStore.record_snapshot/1
.
Streams events from the given stream, in the order in which they were originally written.
Callback implementation for Commanded.EventStore.stream_forward/3
.
Create a persistent subscription to all event streams.
The event store will remember the subscribers last acknowledged event. Restarting the named subscription will resume from the next event following the last seen.
The subscriber process will be sent all events persisted to any stream. It
will receive a {:events, events}
message for each batch of events persisted
for a single aggregate.
The subscriber must ack each received, and successfully processed event, using
Commanded.EventStore.ack_event/2
.
Callback implementation for Commanded.EventStore.subscribe_to_all_streams/3
.
Unsubscribe an existing subscriber from all event notifications.
Callback implementation for Commanded.EventStore.unsubscribe_from_all_streams/1
.