com.rbmhtechnology.eventuate.log.cassandra
Instructs the log to asynchronously and physically delete events up to toSequenceNr
.
Instructs the log to asynchronously and physically delete events up to toSequenceNr
. This operation completes when
physical deletion completed and returns the sequence nr up to which events have been deleted. This can be
smaller then the requested toSequenceNr
if a backend has to keep events for internal reasons.
A backend that does not support physical deletion should not override this method.
This event log's logging adapter.
This event log's logging adapter.
Asynchronously batch-reads events whose destinationAggregateIds
contains the given aggregateId
.
Asynchronously batch-reads events whose destinationAggregateIds
contains the given aggregateId
. At most
max
events must be returned that are within the sequence number bounds fromSequenceNr
and toSequenceNr
.
sequence number to start reading (inclusive).
sequence number to stop reading (inclusive)
or earlier if max
events have already been read.
Asynchronously batch-reads events from the raw event log.
Asynchronously batch-reads events from the raw event log. At most max
events must be returned that are
within the sequence number bounds fromSequenceNr
and toSequenceNr
.
sequence number to start reading (inclusive).
sequence number to stop reading (inclusive)
or earlier if max
events have already been read.
Asynchronously reads the replication progress for given source logId
.
Asynchronously reads the replication progress for given source logId
.
Asynchronously reads all stored local replication progresses.
Asynchronously reads all stored local replication progresses.
Asynchronously recovers event log state from the storage backend.
Asynchronously recovers event log state from the storage backend.
Called after failed event log state recovery.
Called after failed event log state recovery.
Called after successful event log state recovery.
Called after successful event log state recovery.
Asynchronously batch-reads events from the raw event log.
Asynchronously batch-reads events from the raw event log. At most max
events must be returned that are
within the sequence number bounds fromSequenceNr
and toSequenceNr
and that pass the given filter
.
sequence number to start reading (inclusive).
sequence number to stop reading (inclusive)
or earlier if max
events have already been read.
Service context for asynchronous read operations.
Service context for asynchronous read operations.
Event log settings.
Event log settings.
Synchronously writes events
to the given partition
.
Synchronously writes events
to the given partition
. The partition is calculated from the configured
partitionSizeMax
and the current sequence number. Asynchronous writes will be supported in future versions.
This method may only throw an exception if it can guarantee that events
have not been written to the storage
backend. If this is not the case (e.g. after a timeout communicating with a remote storage backend) this method
must retry writing or give up by stopping the actor with context.stop(self)
. This is necessary to avoid that
events
are erroneously excluded from the event stream sent to event-sourced actors, views, writers and
processors, as they may later re-appear during recovery which would violate ordering/causality guarantees.
Implementations that potentially retry a write for a longer time should use a CircuitBreaker for protecting themselves against request overload.
Synchronously writes metadata for a Delete request.
Synchronously writes metadata for a Delete request. This marks events up to DeletionMetadata.toSequenceNr as deleted, i.e. they are not read on replay and indicates which remote logs must have replicated these events before they are allowed to be physically deleted locally.
Asynchronously writes the current snapshot of the event log clock
Asynchronously writes the current snapshot of the event log clock
Asynchronously writes the replication progresses for source log ids given by progresses
keys.
Asynchronously writes the replication progresses for source log ids given by progresses
keys.
An event log actor with Apache Cassandra as storage backend. It uses the Cassandra extension to connect to a Cassandra cluster. Applications should create an instance of this actor using the
props
method of theCassandraEventLog
companion object.Each event log actor creates two tables in the configured keyspace (see also Cassandra). Assuming the following table prefix
eventuate.log.cassandra.table-prefix = "log"
and a log
id
with valueexample
, the names of these two tables arelog_example
which represents the local event log.log_example_agg
which is an index of the local event log for those events that have non-empty destinationAggregateIds set. It is used for fast recovery of event-sourced actors, views, stateful writers and processors that have an aggregateId defined.DurableEvent
Cassandra