Event log actor.
Event log actor.
Global unique actor id.
Global unique actor id.
Command handler.
Command handler.
Event handler.
Event handler.
Optional aggregate id.
Optional aggregate id. It is used for routing DurableEvents to event-sourced destinations
which can be EventsourcedViews or EventsourcedActors. By default, an event is routed
to an event-sourced destination with an undefined aggregateId
. If a destination's aggregateId
is defined it will only receive events with a matching aggregate id in
DurableEvent#destinationAggregateIds.
Returns the command BehaviorContext.
Returns the command BehaviorContext.
Delivers the given message
to a destination
.
Delivers the given message
to a destination
. The delivery of message
is identified by
the given deliveryId
which must be unique in context of the sending actor. The message is
tracked as unconfirmed message until delivery is confirmed by persisting a confirmation event
with persistConfirmation
, using the same deliveryId
.
Returns the event BehaviorContext.
Returns the event BehaviorContext.
Emitter aggregate id of the last handled event.
Emitter aggregate id of the last handled event.
Emitter id of the last handled event.
Emitter id of the last handled event.
Id of the local event log that initially wrote the event.
Id of the local event log that initially wrote the event.
Sequence number of the last handled event.
Sequence number of the last handled event.
Wall-clock timestamp of the last handled event.
Wall-clock timestamp of the last handled event.
Vector timestamp of the last handled event.
Vector timestamp of the last handled event.
This actor's logging adapter.
This actor's logging adapter.
Recovery completion handler.
Recovery completion handler. If called with a Failure
, the actor will be stopped in
any case, regardless of the action taken by the returned handler. The default handler
implementation does nothing and can be overridden by implementations.
Snapshot handler.
Snapshot handler.
Asynchronously persists the given event
and calls handler
with the persist result.
Asynchronously persists the given event
and calls handler
with the persist result. If
persistence was successful, onEvent
is called with the persisted event before handler
is called. Both, onEvent
and handler
, are called on a dispatcher thread of this actor,
hence, it is safe to modify internal state within them. The handler
can also obtain a
reference to the initial command sender via sender()
.
By default, the event is routed to event-sourced destinations with an undefined aggregateId
.
If this actor's aggregateId
is defined it is additionally routed to all actors with the same
aggregateId
. Further routing destinations can be defined with the customDestinationAggregateIds
parameter.
Same semantics as EventsourcedActor.persist plus additional storage of a deliveryId
together with the persistent event
.
Asynchronously persists a sequence of events
and calls handler
with the persist result
for each event in the sequence.
Asynchronously persists a sequence of events
and calls handler
with the persist result
for each event in the sequence. If persistence was successful, onEvent
is called with a
persisted event before handler
is called. Both, onEvent
and handler
, are called on a
dispatcher thread of this actor, hence, it is safe to modify internal state within them.
The handler
can also obtain a reference to the initial command sender via sender()
. The
onLast
handler is additionally called for the last event in the sequence.
By default, the event is routed to event-sourced destinations with an undefined aggregateId
.
If this actor's aggregateId
is defined it is additionally routed to all actors with the same
aggregateId
. Further routing destinations can be defined with the customDestinationAggregateIds
parameter.
Sets recovering
to false
before calling super.postStop
.
Sets recovering
to false
before calling super.postStop
.
Sets recovering
to false
before calling super.preRestart
.
Sets recovering
to false
before calling super.preRestart
.
Initiates recovery.
Initiates recovery.
Initialization behavior.
Initialization behavior.
Returns true
if this actor is currently recovering internal state by consuming
replayed events from the event log.
Returns true
if this actor is currently recovering internal state by consuming
replayed events from the event log. Returns false
after recovery completed and
the actor switches to consuming live events.
Redelivers all unconfirmed messages.
Maximum number of events to be replayed to this actor before replaying is suspended.
Maximum number of events to be replayed to this actor before replaying is suspended. A suspended replay
is resumed automatically after all replayed events haven been handled by this actor's event handler
(= backpressure). The default value for the maximum replay batch size is given by configuration item
eventuate.log.replay-batch-size
. Configured values can be overridden by overriding this method.
Override to provide an application-defined log sequence number from which event replay will start.
Override to provide an application-defined log sequence number from which event replay will start.
If Some(snr)
is returned snapshot loading will be skipped and replay will start from
the given sequence number snr
.
If None
is returned the actor proceeds with the regular snapshot loading procedure.
Asynchronously saves the given snapshot
and calls handler
with the generated
snapshot metadata.
Asynchronously saves the given snapshot
and calls handler
with the generated
snapshot metadata. The handler
can obtain a reference to the initial message
sender with sender()
.
Returns the snapshot BehaviorContext.
Returns the snapshot BehaviorContext.
Adds the current command to the user's command stash.
Adds the current command to the user's command stash. Must not be used in the event handler
or persist
handler.
State synchronization.
State synchronization. If set to true
, commands see internal state that is consistent
with the event log. This is achieved by stashing new commands if this actor is currently
writing events. If set to false
, commands see internal state that is eventually
consistent with the event log.
Delivery ids of unconfirmed messages.
Prepends all stashed commands to the actor's mailbox and then clears the command stash.
Prepends all stashed commands to the actor's mailbox and then clears the command stash.
Has no effect if the actor is recovering i.e. if recovering
returns true
.
Supports the reliable delivery of messages to destinations by enabling applications to redeliver messages until they are confirmed by their destinations. The correlation identifier between a reliable message and its confirmation message is an application-defined
deliveryId
. Reliable messages are delivered by callingdeliver
in an EventsourcedActor's event handler. When the destination replies with a confirmation message, the event-sourced actor must persist an application-defined confirmation event together with thedeliveryId
using the persistConfirmation method. Until successful persistence of the confirmation event, delivered messages are tracked as unconfirmed messages. Unconfirmed messages can be redelivered by callingredeliverUnconfirmed
. This is usually done within a command handler by processing scheduler messages. Redelivery occurs automatically when the event-sourced actor successfully recovered after initial start or a re-start.