* !typ Change the ActorContext#ask in javadsl to accept a Duration instead of Timeout.
* !typ Change the ActorContext#setReceiveTimeout's parameter name from d to receiveTimeout.
* It's mostly technical concern that is blurring the business logic in the entity
* Async interactions before stopping is often not needed
* Implemented with an internal PoisonPill signal that is added by sharding,
* Persistent actors handle PoisonPill and run side effects after persist
and process stashed messages before stopping.
* remove unecessary stop messages
* reference docs
* Makes the combination more visable
* You don't have to worry about the persistenceId, only EntityTypeKey and entityId
* The glue is stronger in the javadsl because of two reasons
* Couldn't realisticly create a PersistentEntity class extending PersistenBehavior (which
contains all the optional parameters and functions) since that would duplicate too much.
* The ActorContext would be needed in the ShardedEntityContext parameter and because of the
additional M type parameters the type inference breaks down when using the factory. Would
require specifying the type of the ShardedEntityContex[M] parameter. That problem doesn't
seem to exist in Java.
renamed:
s/ShardedEntityContext/EntityContext/
s/ShardedEntity/Entity/
* PersistenceId type to differentiate between persistenceId and entityId, #25703
* both entityId (for sharding) and persistenceId as String types was easy
mix-up
* utility method in EntityTypeKey to concatenaty the type and entityId to
a unique persistenceId
* support custom separator to enable compatilbility with Lagom's javadsl
* Also cleanup javadsl Receive, which is only used from AbstractBehavior
* Clarify further in docs that the functional vs OO style is a matter of taste
* composition is the basic building block for ActorTestKit
* ActorTestKitWordSpec for integration with ScalaTest
(automatic shutdown)
* Use ActorTestKitWordSpec in our own tests
* doc TestException
* All nesting behaviors covered with an id parameter
* All wrapping behaviors except supervision replaced with new Intercept implementation
* Implement widen in terms of BehaviorInterceptor
* pass ctx to avoid allocation
* Separate out Effects and ChainedEffects in typed persistence
* Document order of execution for ChainedEffects
* Change stop to a just a ChainedEffect rather than both
Closes#25042Closes#25041
* ChainedEffect renamed to SideEffect
* The TimerMsg was wrapped in IncomingCommand and therefore stashed,
and when unstashed causing the ClassCastException
* Solved by not using timers here but plain scheduler
* Also fixing journalPluginId and snapshotPluginId
* Rather than stop so that users can add their own supervision e.g.
restartWithBackOff
* Only allow back off supervisoir for persistent behaviors
* Handle persist rejections
* Composable javadsl CommandHandlerBuilder, #25226
* CommandHandlerBuilder with stateClass and statePredicate parameters
* CommandHandlerBuilder.orElse
* Remove ActorContext from handler function signatures, can be
passed in constructor
* for completeness, since we have one for CommandHandler, and sometimes
it might be useful with the shorter type signature
* use the explicit function type for CommandHandler in API signatures,
because it's easier to see what it actually is
* Documented wrapping PersistentBehavior in typed actors persistence documentation #24679
* Removed "Current Limitations" section
* Added description on wrapping PersistentBehavior
* Added Scala and Java example for the pattern
* updated persistence docs for the hinted changes
* added missing "the" as requested in the hint