Skip to main content

Overview

NATS is a high-performance, cloud-native messaging system that supports publish/subscribe, request/reply, and queue group patterns, as well as persistent messaging through JetStream. The Ballerina ballerinax/nats connector (v3.3.0) provides programmatic access to a NATS server for publishing messages, subscribing to subjects, performing request-reply exchanges, and managing JetStream streams and consumers within your Ballerina integration flows.

Key features

  • Publish messages to any NATS subject with support for anydata content types
  • Request-reply messaging pattern with configurable timeout for synchronous interactions
  • Subscribe to NATS subjects via service listeners with wildcard subject support (*, >)
  • Queue group subscriptions for load-balanced message distribution across multiple consumers
  • JetStream persistent messaging; create and manage streams with nats:JetStreamClient
  • JetStream push and pull consumption via nats:JetStreamListener with auto-ack or manual acknowledgement
  • Flexible authentication support: username/password credentials, token-based auth, and mutual TLS
  • TLS/SSL secure connections with configurable certificates for encrypted transport

Actions

Actions are operations you invoke on a NATS server from your integration. Use these actions for publishing messages, sending requests, and managing JetStream streams. The NATS connector exposes actions across two clients:

ClientActions
ClientPublish messages, request-reply, close connection
JetStreamClientJetStream stream management, persistent publish, pull-based consume, ack/nak

See the Action Reference for the full list of operations, parameters, and sample code for each client.

Documentation

  • Setup Guide: This guide walks you through running a NATS server and configuring the Ballerina connector to connect to it.

  • Action Reference: Full reference for all clients: operations, parameters, return types, and sample code.

  • Example: Learn how to build and configure an integration using the NATS connector, including connection setup, operation configuration, and execution flow.

How to contribute

As an open source project, WSO2 welcomes contributions from the community.

To contribute to the code for this connector, please create a pull request in the following repository.

Check the issue tracker for open issues that interest you. We look forward to receiving your contributions.