Package org.apache.pekko.persistence
Class AbstractPersistentActor
java.lang.Object
org.apache.pekko.actor.AbstractActor
org.apache.pekko.persistence.AbstractPersistentActor
- All Implemented Interfaces:
Actor,Stash,StashFactory,StashSupport,UnrestrictedStash,RequiresMessageQueue<DequeBasedMessageQueueSemantics>,AbstractPersistentActorLike,Eventsourced,PersistenceIdentity,PersistenceRecovery,PersistenceStash,Snapshotter
- Direct Known Subclasses:
AbstractPersistentActorWithAtLeastOnceDelivery
public abstract class AbstractPersistentActor
extends AbstractActor
implements AbstractPersistentActorLike
Java API: an persistent actor - can be used to implement command or Event Sourcing.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.pekko.actor.AbstractActor
AbstractActor.ActorContext, AbstractActor.ReceiveNested classes/interfaces inherited from interface org.apache.pekko.actor.Actor
Actor.emptyBehavior$, Actor.ignoringBehavior$Nested classes/interfaces inherited from interface org.apache.pekko.persistence.Eventsourced
Eventsourced.AsyncHandlerInvocation, Eventsourced.AsyncHandlerInvocation$, Eventsourced.PendingHandlerInvocation, Eventsourced.RecoveryTick, Eventsourced.RecoveryTick$, Eventsourced.StashingHandlerInvocation, Eventsourced.StashingHandlerInvocation$, Eventsourced.State -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract AbstractActor.ReceiveAn persistent actor has to define its initial receive behavior by implementing thecreateReceivemethod, also known as the command handler.abstract AbstractActor.ReceiveRecovery handler that receives persisted events during recovery.protected ActorRefjournal()protected voidprotected ActorRefSnapshot store plugin actor.Methods inherited from class org.apache.pekko.actor.AbstractActor
context, emptyBehavior, getContext, getSelf, getSender, org$apache$pekko$actor$Actor$_setter_$context_$eq, org$apache$pekko$actor$Actor$_setter_$self_$eq, postRestart, postStop, preRestart, preRestart, preStart, receive, receiveBuilder, self, supervisorStrategyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.pekko.persistence.AbstractPersistentActorLike
defer, deferAsync, persist, persistAll, persistAllAsync, persistAsync, receiveCommand, receiveRecoverMethods inherited from interface org.apache.pekko.actor.Actor
context, org$apache$pekko$actor$Actor$_setter_$context_$eq, org$apache$pekko$actor$Actor$_setter_$self_$eq, postRestart, preStart, receive, self, sender, supervisorStrategyMethods inherited from interface org.apache.pekko.persistence.Eventsourced
_lastSequenceNr_$eq, aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, batchAtomicWrite, changeState, currentState_$eq, deleteMessages, eventBatch_$eq, flushBatch, flushJournalBatch, internalDefer, internalDeferAsync, internalDeleteMessagesBeforeSnapshot, internalPersist, internalPersistAll, internalPersistAllAsync, internalPersistAsync, journalBatch_$eq, lastSequenceNr, log, nextSequenceNr, onPersistFailure, onPersistRejected, onRecoveryFailure, onReplaySuccess, peekApplyHandler, pendingStashingPersistInvocations_$eq, recovering, recoveryFinished, recoveryRunning, recoveryStarted, requestRecoveryPermit, sendBatchedEventsToJournal, sequenceNr_$eq, setLastSequenceNr, snapshotSequenceNr, snapshotterId, startRecovery, stash, stashInternally, super$aroundPostRestart, super$aroundPostStop, super$aroundPreRestart, super$aroundPreStart, super$aroundReceive, super$stash, super$unhandled, unhandled, unstashAll, unstashInternally, updateLastSequenceNr, waitingRecoveryPermit, writeEventFailed, writeEventRejected, writeEventSucceeded, writeInProgress_$eqMethods inherited from interface org.apache.pekko.persistence.PersistenceIdentity
journalPluginId, persistenceId, snapshotPluginIdMethods inherited from interface org.apache.pekko.persistence.PersistenceRecovery
recoveryMethods inherited from interface org.apache.pekko.persistence.PersistenceStash
internalStashOverflowStrategyMethods inherited from interface org.apache.pekko.persistence.Snapshotter
deleteSnapshot, deleteSnapshots, loadSnapshot, saveSnapshotMethods inherited from interface org.apache.pekko.actor.StashFactory
createStashMethods inherited from interface org.apache.pekko.actor.StashSupport
actorCell, clearStash, context, enqueueFirst, prepend, self, theStash_$eq, unstash, unstashAllMethods inherited from interface org.apache.pekko.actor.UnrestrictedStash
postStop, preRestart, super$postStop, super$preRestart
-
Constructor Details
-
AbstractPersistentActor
public AbstractPersistentActor()
-
-
Method Details
-
createReceive
An persistent actor has to define its initial receive behavior by implementing thecreateReceivemethod, also known as the command handler. Typically validates commands against current state (and/or by communication with other actors). On successful validation, one or more events are derived from a command and these events are then persisted by callingpersist.- Specified by:
createReceivein interfaceAbstractPersistentActorLike- Specified by:
createReceivein classAbstractActor
-
createReceiveRecover
Recovery handler that receives persisted events during recovery. If a state snapshot has been captured and saved, this handler will receive aSnapshotOffermessage followed by events that are younger than the offered snapshot.This handler must not have side-effects other than changing persistent actor state i.e. it should not perform actions that may fail, such as interacting with external services, for example.
If there is a problem with recovering the state of the actor from the journal, the error will be logged and the actor will be stopped.
- Specified by:
createReceiveRecoverin interfaceAbstractPersistentActorLike- See Also:
-
journal
- Specified by:
journalin interfaceEventsourced
-
org$apache$pekko$actor$StashSupport$_setter_$mailbox_$eq
protected void org$apache$pekko$actor$StashSupport$_setter_$mailbox_$eq(DequeBasedMessageQueueSemantics x$1) - Specified by:
org$apache$pekko$actor$StashSupport$_setter_$mailbox_$eqin interfaceStashSupport
-
snapshotStore
Description copied from interface:SnapshotterSnapshot store plugin actor.- Specified by:
snapshotStorein interfaceEventsourced- Specified by:
snapshotStorein interfaceSnapshotter
-