Packages

object Topic

A pub sub topic is an actor that handles subscribing to a topic and publishing messages to all subscribed actors.

It is mostly useful in a clustered setting, where it is intended to be started once on every node that want to house subscribers or publish messages to the topic, but it also works in a local setting without cluster.

In a clustered context messages are deduplicated so that there is at most one message sent to each node for each publish and if there are no subscribers on a node, no message is sent to it. Note that the list of subscribers is eventually consistent and there are no delivery guarantees built in.

Each topic results in a akka.actor.typed.receptionist.ServiceKey in the akka.actor.typed.receptionist.Receptionist so the same scaling recommendation holds for topics, see docs: https://doc.akka.io/libraries/akka-core/current/typed/actor-discovery.html#receptionist-scalability

Source
Topic.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Topic
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. trait Command[T] extends internal.pubsub.TopicImpl.Command[T]

    Not for user extension

    Not for user extension

    Annotations
    @DoNotInherit()
  2. trait TopicStats extends AnyRef

    Response to the GetTopicStats query.

    Response to the GetTopicStats query.

    Note that this is a snapshot of the state at one point in time, that there was subscribers at that time does not guarantee there is once this response arrives. The information cannot be used to achieve delivery guarantees, but can be useful in for example tests, to observe a subscription completed before publishing messages.

    Not for user extension.

    Annotations
    @DoNotInherit()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply[T](topicName: String, ttl: FiniteDuration)(implicit classTag: ClassTag[T]): Behavior[Command[T]]

    Scala API: Create a topic actor behavior for the given topic name and message type with a TTL making it terminate itself after a time period with no local subscribers and no locally published messages.

    Scala API: Create a topic actor behavior for the given topic name and message type with a TTL making it terminate itself after a time period with no local subscribers and no locally published messages.

    Note: for many use cases it is more convenient to use the PubSub registry to have an ActorSystem global set of re-usable topics instead of manually creating and managing the topic actors.

  5. def apply[T](topicName: String)(implicit classTag: ClassTag[T]): Behavior[Command[T]]

    Scala API: Create a topic actor behavior for the given topic name and message type.

    Scala API: Create a topic actor behavior for the given topic name and message type.

    Note: for many use cases it is more convenient to use the PubSub registry to have an ActorSystem global set of re-usable topics instead of manually creating and managing the topic actors.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  8. def create[T](messageClass: Class[T], topicName: String, ttl: Duration): Behavior[Command[T]]

    Java API: Create a topic actor behavior for the given topic name and message class with a TTL making it terminate itself after a time period with no local subscribers and no locally published messages.

    Java API: Create a topic actor behavior for the given topic name and message class with a TTL making it terminate itself after a time period with no local subscribers and no locally published messages.

    Note: for many use cases it is more convenient to use the PubSub registry to have an ActorSystem global set of re-usable topics instead of manually creating and managing the topic actors.

  9. def create[T](messageClass: Class[T], topicName: String): Behavior[Command[T]]

    Java API: Create a topic actor behavior for the given topic name and message class

    Java API: Create a topic actor behavior for the given topic name and message class

    Note: for many use cases it is more convenient to use the PubSub registry to have an ActorSystem global set of re-usable topics instead of manually creating and managing the topic actors.

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  13. def getTopicStats[T](replyTo: ActorRef[TopicStats]): Command[T]

    Java API: Get a summary of the state for a local topic actor.

    Java API: Get a summary of the state for a local topic actor.

    See TopicStats for caveats

  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  19. def publish[T](message: T): Command[T]

    Java API: Publish the message to all currently known subscribers.

  20. def subscribe[T](subscriber: ActorRef[T]): Command[T]

    Java API: Subscribe to this topic.

    Java API: Subscribe to this topic. Should only be used for local subscribers.

  21. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. def unsubscribe[T](subscriber: ActorRef[T]): Command[T]

    Java API: Unsubscribe a previously subscribed actor from this topic.

  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. object GetTopicStats

    Scala API: Get a summary of the state for a local topic actor.

    Scala API: Get a summary of the state for a local topic actor.

    See TopicStats for caveats

  28. object Publish

    Scala API: Publish the message to all currently known subscribers.

  29. object Subscribe

    Scala API: Subscribe to this topic.

    Scala API: Subscribe to this topic. Should only be used for local subscribers.

  30. object Unsubscribe

    Scala API: Unsubscribe a previously subscribed actor from this topic.

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped