Unique replication endpoint id.
Names of the event logs managed by this replication endpoint.
Factory of log actor Props
. The String
parameter of the factory is a unique
log id generated by this endpoint. The log actor must be assigned this log id.
Replication connections to other replication endpoints.
Replication filters applied to incoming replication read requests
Name of the application that creates this replication endpoint.
Version of the application that creates this replication endpoint.
Activates this endpoint by starting event replication from remote endpoints to this endpoint.
Name of the application that creates this replication endpoint.
Version of the application that creates this replication endpoint.
Replication connections to other replication endpoints.
Delete events from a local log identified by logName
with a sequence number less than or equal to
toSequenceNr
.
Delete events from a local log identified by logName
with a sequence number less than or equal to
toSequenceNr
. Deletion is split into logical deletion and physical deletion. Logical deletion is
supported by any storage backend and ensures that deleted events are not replayed any more. It has
immediate effect. Logically deleted events can still be replicated to remote ReplicationEndpoints.
They are only physically deleted if the storage backend supports that (currently LevelDB only). Furthermore,
physical deletion only starts after all remote replication endpoints identified by remoteEndpointIds
have successfully replicated these events. Physical deletion is implemented as reliable background
process that survives event log restarts.
Use with care! When events are physically deleted they cannot be replicated any more to new replication endpoints (i.e. those that were unknown at the time of deletion). Also, a location with deleted events may not be suitable any more for disaster recovery of other locations.
Events are deleted from the local log with this name.
Sequence number up to which events shall be deleted (inclusive).
A set of remote ReplicationEndpoint ids that must have replicated events to their logs before they are allowed to be physically deleted at this endpoint.
The sequence number up to which events have been logically deleted. When the returned Future
completes logical deletion is effective. The returned sequence number can differ from the requested
one, if:
Replication filters applied to incoming replication read requests
Unique replication endpoint id.
Factory of log actor Props
.
Factory of log actor Props
. The String
parameter of the factory is a unique
log id generated by this endpoint. The log actor must be assigned this log id.
Returns the unique log id for given logName
.
Names of the event logs managed by this replication endpoint.
The log actors managed by this endpoint, indexed by their name.
Runs an asynchronous disaster recovery procedure.
Runs an asynchronous disaster recovery procedure. This procedure recovers this endpoint in case of total or partial event loss. Partial event loss means event loss from a given sequence number upwards (for example, after having installed a storage backup). Recovery copies events from directly connected remote endpoints back to this endpoint and automatically removes invalid snapshots. A snapshot is invalid if it covers events that have been lost.
This procedure requires that event replication between this and directly connected endpoints is bi-directional and that these endpoints are available during recovery. After successful recovery the endpoint is automatically activated. A failed recovery completes with a RecoveryException and must be retried. Activating this endpoint without having successfully recovered from partial or total event loss may result in inconsistent replica states.
Running a recovery on an endpoint that didn't loose events has no effect but may still fail due to unavailable
replication partners, for example. In this case, a recovery retry can be omitted if the partialUpdate
field
of RecoveryException is set to false
.
The actor system's replication settings.
A replication endpoint connects to other replication endpoints for replicating events. Events are replicated from the connected endpoints to this endpoint. The connected endpoints are replication sources, this endpoint is a replication target. To setup bi-directional replication, the other replication endpoints must additionally setup replication connections to this endpoint.
A replication endpoint manages one or more event logs. Event logs are indexed by name. Events are replicated only between event logs with matching names.
If
applicationName
equals that of a replication source, events are only replicated ifapplicationVersion
is greater than or equal to that of the replication source. This is a simple mechanism to support incremental version upgrades of replicated applications where each replica can be upgraded individually without shutting down other replicas. This avoids permanent state divergence during upgrade which may occur if events are replicated from replicas with higher version to those with lower version. IfapplicationName
does not equal that of a replication source, events are always replicated, regardless of theapplicationVersion
value.