package persistence
- Alphabetic
- Public
- All
Type Members
-
abstract
class
AbstractPersistentActor extends AbstractActor with AbstractPersistentActorLike
Java API: an persistent actor - can be used to implement command or event sourcing.
-
abstract
class
AbstractPersistentActorWithAtLeastOnceDelivery extends AbstractPersistentActor with AtLeastOnceDeliveryLike
Java API: compatible with lambda expressions
Java API: compatible with lambda expressions
Use this class instead of
AbstractPersistentActor
to send messages with at-least-once delivery semantics to destinations. Full documentation in AtLeastOnceDelivery. -
abstract
class
AbstractPersistentActorWithTimers extends AbstractActor with Timers with AbstractPersistentActorLike
Java API: Combination of AbstractPersistentActor and akka.actor.AbstractActorWithTimers.
-
trait
AtLeastOnceDelivery extends PersistentActor with AtLeastOnceDeliveryLike
Scala API: Mix-in this trait with your
PersistentActor
to send messages with at-least-once delivery semantics to destinations.Scala API: Mix-in this trait with your
PersistentActor
to send messages with at-least-once delivery semantics to destinations. It takes care of re-sending messages when they have not been confirmed within a configurable timeout. Use the AtLeastOnceDeliveryLike#deliver method to send a message to a destination. Call the AtLeastOnceDeliveryLike#confirmDelivery method when the destination has replied with a confirmation message.At-least-once delivery implies that original message send order is not always retained and the destination may receive duplicate messages due to possible resends.
The interval between redelivery attempts can be defined by AtLeastOnceDeliveryLike#redeliverInterval. After a number of delivery attempts a AtLeastOnceDelivery.UnconfirmedWarning message will be sent to
self
. The re-sending will still continue, but you can choose to call AtLeastOnceDeliveryLike#confirmDelivery to cancel the re-sending.The
AtLeastOnceDelivery
trait has a state consisting of unconfirmed messages and a sequence number. It does not store this state itself. You must persist events corresponding to thedeliver
andconfirmDelivery
invocations from yourPersistentActor
so that the state can be restored by calling the same methods during the recovery phase of thePersistentActor
. Sometimes these events can be derived from other business level events, and sometimes you must create separate events. During recovery calls todeliver
will not send out the message, but it will be sent later if no matchingconfirmDelivery
was performed.Support for snapshots is provided by AtLeastOnceDeliveryLike#getDeliverySnapshot and AtLeastOnceDeliveryLike#setDeliverySnapshot. The
AtLeastOnceDeliverySnapshot
contains the full delivery state, including unconfirmed messages. If you need a custom snapshot for other parts of the actor state you must also include theAtLeastOnceDeliverySnapshot
. It is serialized using protobuf with the ordinary Akka serialization mechanism. It is easiest to include the bytes of theAtLeastOnceDeliverySnapshot
as a blob in your custom snapshot.- See also
AbstractPersistentActorWithAtLeastOnceDelivery for Java API
-
trait
AtLeastOnceDeliveryLike extends Eventsourced
- See also
- final case class AtomicWrite(payload: Seq[PersistentRepr]) extends PersistentEnvelope with Message with Product with Serializable
- sealed abstract class CapabilityFlag extends AnyRef
- sealed trait CapabilityFlags extends AnyRef
-
final
case class
DeleteMessagesFailure(cause: Throwable, toSequenceNr: Long) extends Response with Product with Serializable
Reply message to a failed JournalProtocol.DeleteMessagesTo request.
-
final
case class
DeleteMessagesSuccess(toSequenceNr: Long) extends Response with Product with Serializable
Reply message to a successful JournalProtocol.DeleteMessagesTo request.
-
final
case class
DeleteSnapshotFailure(metadata: SnapshotMetadata, cause: Throwable) extends Response with Product with Serializable
Sent to a PersistentActor after failed deletion of a snapshot.
Sent to a PersistentActor after failed deletion of a snapshot.
- metadata
snapshot metadata.
- cause
failure cause.
- Annotations
- @SerialVersionUID()
-
final
case class
DeleteSnapshotSuccess(metadata: SnapshotMetadata) extends Response with Product with Serializable
Sent to a PersistentActor after successful deletion of a snapshot.
Sent to a PersistentActor after successful deletion of a snapshot.
- metadata
snapshot metadata.
- Annotations
- @SerialVersionUID()
-
final
case class
DeleteSnapshotsFailure(criteria: SnapshotSelectionCriteria, cause: Throwable) extends Response with Product with Serializable
Sent to a PersistentActor after failed deletion of a range of snapshots.
Sent to a PersistentActor after failed deletion of a range of snapshots.
- criteria
snapshot selection criteria.
- cause
failure cause.
- Annotations
- @SerialVersionUID()
-
final
case class
DeleteSnapshotsSuccess(criteria: SnapshotSelectionCriteria) extends Response with Product with Serializable
Sent to a PersistentActor after successful deletion of specified range of snapshots.
Sent to a PersistentActor after successful deletion of specified range of snapshots.
- criteria
snapshot selection criteria.
- Annotations
- @SerialVersionUID()
- final class DiscardConfigurator extends StashOverflowStrategyConfigurator
- trait JournalCapabilityFlags extends CapabilityFlags
-
class
Persistence extends Extension
Persistence extension.
-
trait
PersistenceIdentity extends AnyRef
Identification of PersistentActor.
- trait PersistenceRecovery extends AnyRef
-
final
class
PersistenceSettings extends AnyRef
Persistence configuration.
- trait PersistenceStash extends Stash with StashFactory
-
trait
PersistentActor extends Eventsourced with PersistenceIdentity
Scala API: A persistent Actor - can be used to implement command or event sourcing.
-
trait
PersistentRepr extends Message
Plugin API: representation of a persistent message in the journal plugin API.
Plugin API: representation of a persistent message in the journal plugin API.
- abstract class PluginSpec extends TestKitBase with WordSpecLike with Matchers with BeforeAndAfterAll with BeforeAndAfterEach
-
final
case class
Recovery(fromSnapshot: SnapshotSelectionCriteria = SnapshotSelectionCriteria.Latest, toSequenceNr: Long = Long.MaxValue, replayMax: Long = Long.MaxValue) extends Product with Serializable
Recovery mode configuration object to be returned in PersistentActor#recovery.
Recovery mode configuration object to be returned in PersistentActor#recovery.
By default recovers from latest snapshot replays through to the last available event (last sequenceId).
Recovery will start from a snapshot if the persistent actor has previously saved one or more snapshots and at least one of these snapshots matches the specified
fromSnapshot
criteria. Otherwise, recovery will start from scratch by replaying all stored events.If recovery starts from a snapshot, the persistent actor is offered that snapshot with a SnapshotOffer message, followed by replayed messages, if any, that are younger than the snapshot, up to the specified upper sequence number bound (
toSequenceNr
).- fromSnapshot
criteria for selecting a saved snapshot from which recovery should start. Default is latest (= youngest) snapshot.
- toSequenceNr
upper sequence number bound (inclusive) for recovery. Default is no upper bound.
- replayMax
maximum number of messages to replay. Default is no limit.
- Annotations
- @SerialVersionUID()
- abstract class RecoveryCompleted extends AnyRef
- final class RecoveryTimedOut extends RuntimeException with NoStackTrace
-
final
case class
ReplyToStrategy(response: Any) extends StashOverflowStrategy with Product with Serializable
Reply to sender with predefined response, and discard the received message silently.
Reply to sender with predefined response, and discard the received message silently.
- response
the message replying to sender with
- trait RuntimePluginConfig extends AnyRef
-
final
case class
SaveSnapshotFailure(metadata: SnapshotMetadata, cause: Throwable) extends Response with Product with Serializable
Sent to a PersistentActor after failed saving of a snapshot.
Sent to a PersistentActor after failed saving of a snapshot.
- metadata
snapshot metadata.
- cause
failure cause.
- Annotations
- @SerialVersionUID()
-
final
case class
SaveSnapshotSuccess(metadata: SnapshotMetadata) extends Response with Product with Serializable
Sent to a PersistentActor after successful saving of a snapshot.
Sent to a PersistentActor after successful saving of a snapshot.
- metadata
snapshot metadata.
- Annotations
- @SerialVersionUID()
-
final
case class
SelectedSnapshot(metadata: SnapshotMetadata, snapshot: Any) extends Product with Serializable
Plugin API: a selected snapshot matching SnapshotSelectionCriteria.
Plugin API: a selected snapshot matching SnapshotSelectionCriteria.
- metadata
snapshot metadata.
- snapshot
snapshot.
-
final
case class
SnapshotMetadata(persistenceId: String, sequenceNr: Long, timestamp: Long = 0L) extends Product with Serializable
Snapshot metadata.
Snapshot metadata.
- persistenceId
id of persistent actor from which the snapshot was taken.
- sequenceNr
sequence number at which the snapshot was taken.
- timestamp
time at which the snapshot was saved, defaults to 0 when unknown.
- Annotations
- @SerialVersionUID()
-
final
case class
SnapshotOffer(metadata: SnapshotMetadata, snapshot: Any) extends Product with Serializable
Offers a PersistentActor a previously saved
snapshot
during recovery.Offers a PersistentActor a previously saved
snapshot
during recovery. This offer is received before any further replayed messages.- Annotations
- @SerialVersionUID()
-
final
case class
SnapshotSelectionCriteria(maxSequenceNr: Long = Long.MaxValue, maxTimestamp: Long = Long.MaxValue, minSequenceNr: Long = 0L, minTimestamp: Long = 0L) extends Product with Serializable
Selection criteria for loading and deleting snapshots.
Selection criteria for loading and deleting snapshots.
- maxSequenceNr
upper bound for a selected snapshot's sequence number. Default is no upper bound, i.e.
Long.MaxValue
- maxTimestamp
upper bound for a selected snapshot's timestamp. Default is no upper bound, i.e.
Long.MaxValue
- minSequenceNr
lower bound for a selected snapshot's sequence number. Default is no lower bound, i.e.
0L
- minTimestamp
lower bound for a selected snapshot's timestamp. Default is no lower bound, i.e.
0L
- Annotations
- @SerialVersionUID()
- See also
- trait SnapshotStoreCapabilityFlags extends CapabilityFlags
-
trait
Snapshotter extends Actor
Snapshot API on top of the internal snapshot protocol.
-
sealed
trait
StashOverflowStrategy extends AnyRef
This defines how to handle the current received message which failed to stash, when the size of Stash exceeding the capacity of Stash.
-
trait
StashOverflowStrategyConfigurator extends AnyRef
Implement this interface in order to configure the stashOverflowStrategy for the internal stash of persistent actor.
Implement this interface in order to configure the stashOverflowStrategy for the internal stash of persistent actor. An instance of this class must be instantiable using a no-arg constructor.
- final case class TestPayload(ref: ActorRef) extends Product with Serializable
- class TestSerializer extends SerializerWithStringManifest
- final class ThrowExceptionConfigurator extends StashOverflowStrategyConfigurator
-
abstract
class
UntypedPersistentActor extends UntypedActor with Eventsourced with PersistenceIdentity
Java API: an persistent actor - can be used to implement command or event sourcing.
Java API: an persistent actor - can be used to implement command or event sourcing.
- Annotations
- @deprecated
- Deprecated
(Since version 2.5.0) Use AbstractPersistentActor instead of UntypedPersistentActor.
-
abstract
class
UntypedPersistentActorWithAtLeastOnceDelivery extends UntypedPersistentActor with AtLeastOnceDeliveryLike
Java API: Use this class instead of
UntypedPersistentActor
to send messages with at-least-once delivery semantics to destinations.Java API: Use this class instead of
UntypedPersistentActor
to send messages with at-least-once delivery semantics to destinations. Full documentation in AtLeastOnceDelivery.- Annotations
- @deprecated
- Deprecated
(Since version 2.5.0) Use AbstractPersistentActorWithAtLeastOnceDelivery instead.
- See also
Value Members
-
object
AtLeastOnceDelivery
- Annotations
- @ccompatUsedUntil213()
- object AtomicWrite extends Serializable
- object CapabilityFlag
-
object
DiscardToDeadLetterStrategy extends StashOverflowStrategy with Product with Serializable
Discard the message to akka.actor.DeadLetter.
-
object
Persistence extends ExtensionId[Persistence] with ExtensionIdProvider
Persistence extension provider.
- object PersistentRepr extends Serializable
- object Recovery extends Serializable
-
object
RecoveryCompleted extends RecoveryCompleted with Product with Serializable
Sent to a PersistentActor when the journal replay has been finished.
Sent to a PersistentActor when the journal replay has been finished.
- Annotations
- @SerialVersionUID()
- object SelectedSnapshot extends Serializable
- object SnapshotMetadata extends Serializable
- object SnapshotSelectionCriteria extends Serializable
-
object
ThrowOverflowExceptionStrategy extends StashOverflowStrategy with Product with Serializable
Throw akka.actor.StashOverflowException, hence the persistent actor will starting recovery if guarded by default supervisor strategy.
Throw akka.actor.StashOverflowException, hence the persistent actor will starting recovery if guarded by default supervisor strategy. Be carefully if used together with persist/persistAll or has many messages needed to replay.