The JVM SDK currently only supports legacy versions of Nitric prior to v1. This version is maintained for compatibility with existing projects and not recommended for new projects. New projects should be started using a supported SDK (presented automatically using the `nitric new` command) orget in touch to request an update to the latest version.
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.