final case class RequestNext[A](sendNextTo: ActorRef[ShardingEnvelope[A]], askNextTo: ActorRef[MessageWithConfirmation[A]], entitiesWithDemand: Set[EntityId], bufferedForEntitiesWithoutDemand: Map[EntityId, Int]) extends Product with Serializable

The ProducerController sends RequestNext to the producer when it is allowed to send one message via the sendNextTo or askNextTo. It should wait for next RequestNext before sending one more message.

entitiesWithDemand contains information about which entities that have demand. It is allowed to send to a new entityId that is not included in the entitiesWithDemand. If sending to an entity that doesn't have demand the message will be buffered, and that can be seen in the bufferedForEntitiesWithoutDemand.

This support for buffering means that it is even allowed to send several messages in response to one RequestNext but it's recommended to only send one message and wait for next RequestNext before sending more messages.

Source
ShardingProducerController.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RequestNext
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new RequestNext(sendNextTo: [ShardingEnvelope[A]], askNextTo: [MessageWithConfirmation[A]], entitiesWithDemand: Set[EntityId], bufferedForEntitiesWithoutDemand: Map[, Int])

Value Members

  1. val askNextTo: [MessageWithConfirmation[A]]
  2. val bufferedForEntitiesWithoutDemand: Map[, Int]
  3. val entitiesWithDemand: Set[EntityId]
  4. def getBufferedForEntitiesWithoutDemand: Map[String, Integer]

    Java API

  5. def getEntitiesWithDemand: Set[String]

    Java API

  6. def productElementNames: Iterator[String]
    Definition Classes
    Product
  7. val sendNextTo: [ShardingEnvelope[A]]