JVM - topic.publish()

Publish an event (push based message) to a topic.

import io.nitric.Nitric;
import io.nitric.api.events.v0.NitricEvent;
import io.nitric.resources.TopicPermission;

public class Application {
  public static void main(String[] args) {
    var topic = Nitric.INSTANCE.topic("new-user").with(TopicPermission.Publishing);

    topic.publish(new NitricEvent(Map.of("message", "new user created"), "1234", "none"));

    Nitric.INSTANCE.run();
  }
}

Parameters


  • Name
    event
    Required
    Required
    Type
    Event or Map<String, Any>
    Description

    The event to publish to the topic.

    • Name
      payload
      Required
      Required
      Type
      Map<String, Any>
      Description

      Payload to send with the event.

    • Name
      id
      Optional
      Optional
      Type
      String
      Description

      The unique ID to apply to the event. If an ID is not supplied a UUIDv4 is generated.

    • Name
      payloadType
      Optional
      Optional
      Type
      String
      Description

      A hint to the type of payload supplied.

Examples

Publish a topic

import io.nitric.Nitric;
import io.nitric.api.events.v0.NitricEvent;
import io.nitric.resources.TopicPermission;

public class Application {
  public static void main(String[] args) {
    var topic = Nitric.INSTANCE.topic("topic").with(TopicPermission.Publishing);

    topic.publish(new NitricEvent(Map.of("message", "New user created"), "1234", "none"));

    Nitric.INSTANCE.run();
  }
}

Send a message with a delay

import io.nitric.Nitric;
import io.nitric.api.events.v0.NitricEvent;
import io.nitric.api.events.v0.PublishOptions;
import io.nitric.resources.TopicPermission;

public class Application {
  public static void main(String[] args) {
    var topic = Nitric.INSTANCE.topic("topic").with(TopicPermission.Publishing);

    topic.publish(
      new NitricEvent(Map.of("message", "New user created"), "1234", "none"),
      PublishOptions.WithDelay(600) // Send with a delay of 600 seconds (10 minutes)
    );

    Nitric.INSTANCE.run();
  }
}

Notes

  • If an id is not supplied with an event a UUID(v4) will be generated for you.
  • A function may subscribe to OR publish to a topic but not both.