Packages

final class Entity[M, E] extends AnyRef

Defines how the entity should be created. Used in ClusterSharding#init.

Source
ClusterSharding.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Entity
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. val allocationStrategy: Option[ShardAllocationStrategy]
  2. val createBehavior: (EntityContext) ⇒ Behavior[M]
  3. val entityProps: Props
  4. val messageExtractor: Option[ShardingMessageExtractor[E, M]]
  5. val settings: Option[ClusterShardingSettings]
  6. val stopMessage: Option[M]
  7. val typeKey: EntityTypeKey[M]
  8. def withAllocationStrategy(newAllocationStrategy: ShardAllocationStrategy): Entity[M, E]

    Allocation strategy which decides on which nodes to allocate new shards, ClusterSharding#defaultShardAllocationStrategy is used if this is not specified.

  9. def withEntityProps(newEntityProps: Props): Entity[M, E]

    akka.actor.typed.Props of the entity actors, such as dispatcher settings.

  10. def withMessageExtractor[Envelope](newExtractor: ShardingMessageExtractor[Envelope, M]): Entity[M, Envelope]

    If a messageExtractor is not specified the messages are sent to the entities by wrapping them in ShardingEnvelope with the entityId of the recipient actor.

    If a messageExtractor is not specified the messages are sent to the entities by wrapping them in ShardingEnvelope with the entityId of the recipient actor. That envelope is used by the HashCodeMessageExtractor for extracting entityId and shardId. The number of shards is then defined by numberOfShards in ClusterShardingSettings, which by default is configured with akka.cluster.sharding.number-of-shards.

  11. def withSettings(newSettings: ClusterShardingSettings): Entity[M, E]

    Additional settings, typically loaded from configuration.

  12. def withStopMessage(newStopMessage: M): Entity[M, E]

    Message sent to an entity to tell it to stop, e.g.

    Message sent to an entity to tell it to stop, e.g. when rebalanced or passivated. If this is not defined it will be stopped automatically. It can be useful to define a custom stop message if the entity needs to perform some asynchronous cleanup or interactions before stopping.