package persistence
- Alphabetic
- Public
- All
Type Members
-
abstract
class
AbstractPersistentActor
extends AbstractActor with PersistentActor with Eventsourced
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
UntypedPersistentActor
to send messages with at-least-once delivery semantics to destinations. Full documentation in AtLeastOnceDelivery. -
trait
AtLeastOnceDelivery
extends PersistentActor with AtLeastOnceDeliveryLike
Mix-in this trait with your
PersistentActor
to send messages with at-least-once delivery semantics to destinations.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
-
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 Product with Serializable
Reply message to a failed Eventsourced#deleteMessages request.
-
final
case class
DeleteMessagesSuccess
(toSequenceNr: Long) extends Product with Serializable
Reply message to a successful Eventsourced#deleteMessages 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 or PersistentView.
- trait PersistenceRecovery extends AnyRef
-
final
class
PersistenceSettings
extends AnyRef
Persistence configuration.
- trait PersistenceStash extends Stash with StashFactory
-
trait
PersistentActor
extends Eventsourced with PersistenceIdentity
An 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
-
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 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.
-
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. -
final
case class
Update
(await: Boolean = false, replayMax: Long = Long.MaxValue) extends Product with Serializable
Instructs a PersistentView to update itself.
Instructs a PersistentView to update itself. This will run a single incremental message replay with all messages from the corresponding persistent id's journal that have not yet been consumed by the view. To update a view with messages that have been written after handling this request, another
Update
request must be sent to the view.- await
if
true
, processing of further messages sent to the view will be delayed until the incremental message replay, triggered by this update request, completes. Iffalse
, any message sent to the view may interleave with replayed persistent event stream.- replayMax
maximum number of messages to replay when handling this update request. Defaults to
Long.MaxValue
(i.e. no limit).
- Annotations
- @SerialVersionUID()
-
abstract
class
AbstractPersistentView
extends AbstractActor with PersistentView
Java API: compatible with lambda expressions (to be used with akka.japi.pf.ReceiveBuilder)
Java API: compatible with lambda expressions (to be used with akka.japi.pf.ReceiveBuilder)
- Annotations
- @deprecated
- Deprecated
(Since version 2.4) use Persistence Query instead
- See also
-
trait
PersistentView
extends Actor with Snapshotter with Stash with StashFactory with PersistenceIdentity with PersistenceRecovery with ActorLogging
A view replicates the persistent message stream of a PersistentActor.
A view replicates the persistent message stream of a PersistentActor. Implementation classes receive the message stream directly from the Journal. These messages can be processed to update internal state in order to maintain an (eventual consistent) view of the state of the corresponding persistent actor. A persistent view can also run on a different node, provided that a replicated journal is used.
Implementation classes refer to a persistent actors' message stream by implementing
persistenceId
with the corresponding (shared) identifier value.Views can also store snapshots of internal state by calling PersistentView#autoUpdate. The snapshots of a view are independent of those of the referenced persistent actor. During recovery, a saved snapshot is offered to the view with a SnapshotOffer message, followed by replayed messages, if any, that are younger than the snapshot. Default is to offer the latest saved snapshot.
By default, a view automatically updates itself with an interval returned by
autoUpdateInterval
. This method can be overridden by implementation classes to define a view instance-specific update interval. The default update interval for all views of an actor system can be configured with theakka.persistence.view.auto-update-interval
configuration key. Applications may trigger additional view updates by sending the view Update requests. See also methods- PersistentView#autoUpdate for turning automated updates on or off
- PersistentView#autoUpdateReplayMax for limiting the number of replayed messages per view update cycle
- Annotations
- @deprecated
- Deprecated
(Since version 2.4) use Persistence Query instead
-
abstract
class
UntypedPersistentView
extends UntypedActor with PersistentView
Java API.
Java API.
- Annotations
- @deprecated
- Deprecated
(Since version 2.4) use Persistence Query instead
- See also
Value Members
- object AtLeastOnceDelivery
- 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.
- object Update extends Serializable