trait EventSourcedBehavior[Command, Event, State] extends DeferredBehavior[Command]
Further customization of the EventSourcedBehavior
can be done with the methods defined here.
Not for user extension
- Annotations
- @DoNotInherit()
- Source
- EventSourcedBehavior.scala
- Alphabetic
- By Inheritance
- EventSourcedBehavior
- DeferredBehavior
- Behavior
- AnyRef
- Any
- by BehaviorDecorators
- by BehaviorDecorators
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
apply(ctx: TypedActorContext[Command]): Behavior[Command]
- Definition Classes
- DeferredBehavior
-
abstract
def
eventAdapter(adapter: EventAdapter[Event, _]): EventSourcedBehavior[Command, Event, State]
Transform the event in another type before giving to the journal.
Transform the event in another type before giving to the journal. Can be used to wrap events in types Journals understand but is of a different type than
Event
. -
abstract
def
onPersistFailure(backoffStrategy: BackoffSupervisorStrategy): EventSourcedBehavior[Command, Event, State]
Back off strategy for persist failures.
Back off strategy for persist failures.
Specifically BackOff to prevent resume being used. Resume is not allowed as it will be unknown if the event has been persisted.
If not specified the actor will be stopped on failure.
- abstract def persistenceId: PersistenceId
-
abstract
def
receiveSignal(signalHandler: PartialFunction[(State, Signal), Unit]): EventSourcedBehavior[Command, Event, State]
Allows the event sourced behavior to react on signals.
Allows the event sourced behavior to react on signals.
The regular lifecycle signals can be handled as well as Akka Persistence specific signals (snapshot and recovery related). Those are all subtypes of akka.persistence.typed.EventSourcedSignal
-
abstract
def
signalHandler: PartialFunction[(State, Signal), Unit]
- returns
The currently defined signal handler or an empty handler if no custom handler previously defined
-
abstract
def
snapshotWhen(predicate: (State, Event, Long) ⇒ Boolean): EventSourcedBehavior[Command, Event, State]
Initiates a snapshot if the given
predicate
evaluates to true.Initiates a snapshot if the given
predicate
evaluates to true.Decide to store a snapshot based on the State, Event and sequenceNr when the event has been successfully persisted.
When persisting multiple events at once the snapshot is triggered after all the events have been persisted.
Snapshots triggered by
snapshotWhen
will not trigger deletes of old snapshots and events if EventSourcedBehavior.withRetention with RetentionCriteria.snapshotEvery is used together withsnapshotWhen
. Such deletes are only triggered by snapshots matching thenumberOfEvents
in the RetentionCriteria. -
abstract
def
withJournalPluginId(id: String): EventSourcedBehavior[Command, Event, State]
Change the journal plugin id that this actor should use.
-
abstract
def
withRetention(criteria: RetentionCriteria): EventSourcedBehavior[Command, Event, State]
Criteria for retention/deletion of snapshots and events.
Criteria for retention/deletion of snapshots and events. By default, retention is disabled and snapshots are not saved and deleted automatically.
-
abstract
def
withSnapshotPluginId(id: String): EventSourcedBehavior[Command, Event, State]
Change the snapshot store plugin id that this actor should use.
-
abstract
def
withSnapshotSelectionCriteria(selection: SnapshotSelectionCriteria): EventSourcedBehavior[Command, Event, State]
Changes the snapshot selection criteria used by this behavior.
Changes the snapshot selection criteria used by this behavior. By default the most recent snapshot is used, and the remaining state updates are recovered by replaying events from the sequence number up until which the snapshot reached.
You may configure the behavior to skip replaying snapshots completely, in which case the recovery will be performed by replaying all events -- which may take a long time.
-
abstract
def
withTagger(tagger: (Event) ⇒ Set[String]): EventSourcedBehavior[Command, Event, State]
The
tagger
function should give event tags, which will be used in persistence query
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to any2stringadd[EventSourcedBehavior[Command, Event, State]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (EventSourcedBehavior[Command, Event, State], B)
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to ArrowAssoc[EventSourcedBehavior[Command, Event, State]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
def
ensuring(cond: (EventSourcedBehavior[Command, Event, State]) ⇒ Boolean, msg: ⇒ Any): EventSourcedBehavior[Command, Event, State]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to Ensuring[EventSourcedBehavior[Command, Event, State]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (EventSourcedBehavior[Command, Event, State]) ⇒ Boolean): EventSourcedBehavior[Command, Event, State]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to Ensuring[EventSourcedBehavior[Command, Event, State]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): EventSourcedBehavior[Command, Event, State]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to Ensuring[EventSourcedBehavior[Command, Event, State]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): EventSourcedBehavior[Command, Event, State]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to Ensuring[EventSourcedBehavior[Command, Event, State]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to StringFormat[EventSourcedBehavior[Command, Event, State]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
narrow[U <: Command]: Behavior[U]
Narrow the type of this Behavior, which is always a safe operation.
Narrow the type of this Behavior, which is always a safe operation. This method is necessary to implement the contravariant nature of Behavior (which cannot be expressed directly due to type inference problems).
- Definition Classes
- Behavior
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
orElse(that: Behavior[Command]): Behavior[Command]
Composes this
Behavior
with a fallbackBehavior
which is used when thisBehavior
doesn't handle the message or signal, i.e.Composes this
Behavior
with a fallbackBehavior
which is used when thisBehavior
doesn't handle the message or signal, i.e. whenunhandled
is returned.- that
the fallback
Behavior
- Definition Classes
- Behavior
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (EventSourcedBehavior[Command, Event, State], B)
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to ArrowAssoc[EventSourcedBehavior[Command, Event, State]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Shadowed Implicit Value Members
-
val
behavior: Behavior[Command]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to BehaviorDecorators[Command] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Shadowing
- This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:(eventSourcedBehavior: BehaviorDecorators[Command]).behavior
- Definition Classes
- BehaviorDecorators
-
val
behavior: Behavior[Command]
- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to BehaviorDecorators[Command] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Shadowing
- This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:(eventSourcedBehavior: BehaviorDecorators[Command]).behavior
- Definition Classes
- BehaviorDecorators
-
def
widen[U](matcher: PartialFunction[U, Command]): Behavior[U]
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy.
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy. Signals are not transformed.
Example:
receive[String] { (ctx, msg) => println(msg); same }.widen[Number] { case b: BigDecimal => s"BigDecimal($b)" case i: BigInteger => s"BigInteger($i)" // all other kinds of Number will be `unhandled` }
Scheduled messages via akka.actor.typed.scaladsl.TimerScheduler can currently not be used together with
widen
, see issue #25318.- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to BehaviorDecorators[Command] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Shadowing
- This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:(eventSourcedBehavior: BehaviorDecorators[Command]).widen(matcher)
- Definition Classes
- BehaviorDecorators
-
def
widen[U](matcher: PartialFunction[U, Command]): Behavior[U]
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy.
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy. Signals are not transformed.
Example:
receive[String] { (ctx, msg) => println(msg); same }.widen[Number] { case b: BigDecimal => s"BigDecimal($b)" case i: BigInteger => s"BigInteger($i)" // all other kinds of Number will be `unhandled` }
Scheduled messages via akka.actor.typed.scaladsl.TimerScheduler can currently not be used together with
widen
, see issue #25318.- Implicit
- This member is added by an implicit conversion from EventSourcedBehavior[Command, Event, State] to BehaviorDecorators[Command] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Shadowing
- This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:(eventSourcedBehavior: BehaviorDecorators[Command]).widen(matcher)
- Definition Classes
- BehaviorDecorators