* Testing of singleton leaving
* gossip optimization, exiting change to two oldest per role
* hardening ClusterSingletonManagerIsStuck restart, increase ClusterSingletonManagerIsStuck
* 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
Previously OptionVal was restricted to types that have Null as their
bottom type, that is reference types (that extend AnyRef/Object), rather
than also allowing primitives (that extend AnyVal).
By removing this restrictions any type is a valid type argument.
The effect this will have is that primitives will be box, because we
need a way to represent the None case (using the null value).
* Introduce 'MemberDowned' member event
Compatiblity note: MemberEvent is a sealed trait, so it is debatable whether
it is acceptable to introduce a new member.
* Be more conservative (more like leaving), add test
* Avoid calling asInstanceOf in dilated
* Fix the rounding in dilated for Java
* Delegate Java dilated to Scala dilated
* Import scala.concurrent.duration.Duration
* Read port/weight/priority as unsigned shorts for SRVRecords
* Delete writing code for resource records. Isn't used/tested.
* Mima and review feedback
* Create typed ActorMaterializer from ActorContext to bind stream's lifecycle with an actor's lifecycle
* Add Java API for creating typed ActorMaterializer from ActorContext
* 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