Annotation Interface PubSub


@Retention(RUNTIME) @Target(TYPE) public @interface PubSub
Enables publish-subscribe messaging for an Agent or Role. Similar to Broadcast but supports multiple topics and message filtering.

Example:

 @PubSub(
     topics = {"research-findings", "questions"},
     broker = "http://pubsub-broker:9090"
 )
 public class ResearchAgent extends Agent {
     // Can pub/sub to multiple topics
 }
 
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Topics this agent subscribes to or publishes.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Remote message broker URL.
    boolean
    Whether this agent can publish to topics.
    boolean
    Whether this agent can subscribe to topics.
    Message filter expression (optional).
    Transport mode.
  • Element Details

    • topics

      String[] topics
      Topics this agent subscribes to or publishes.
    • broker

      String broker
      Remote message broker URL. If empty, uses internal broker.
      Default:
      ""
    • transport

      TransportMode transport
      Transport mode.
      Default:
      AUTO
    • canPublish

      boolean canPublish
      Whether this agent can publish to topics.
      Default:
      true
    • canSubscribe

      boolean canSubscribe
      Whether this agent can subscribe to topics.
      Default:
      true
    • filter

      String filter
      Message filter expression (optional). Example: "type='data' AND priority>5"
      Default:
      ""