Having it be AnyRef just makes it harder to use with a generic type,
because now instead of any type `T` it has to be a type `T <: AnyRef`.
There's no benefit in having it as AnyRef over Any.
This commit avoids memory being retained for groupBy. Prior to the commit, closedSubstreams could grow unbounded. This commit includes the size of closedSubstreams when considering to take on a new substream, while retaining the semantics described by its Flow API.
* 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/