The NATS sink publishes messages to NATS subjects.

This is the reference for the NATS sink. See the quickstart for a step-by-step walkthrough or the how-to guide for an explanation of how to use the NATS sink.

Configuration

  • Host

    The hostname of your NATS server (e.g., localhost).

  • Port

    The port number for your NATS server (default: 4222).

  • Username (optional)

    Username for authentication with the NATS server.

  • Password (optional)

    Password for authentication with the NATS server.

  • JWT (optional)

    JSON Web Token for authentication with the NATS server.

  • NKey Seed (optional)

    NKey seed for authentication with the NATS server.

  • TLS (optional)

    Enable TLS/SSL for secure connections to the NATS server (default: false).

Message format

Sequin sends messages to NATS as JSON. You can find the shape of the messages in the messages reference.

Subject naming

By default, messages are published to subjects using the following pattern:

sequin.<database_name>.<schema_name>.<table_name>.<action>

For example, if you’re streaming changes from a table called products in the public schema of a database called shop, you would see subjects like:

  • sequin.shop_prod.public.products.insert
  • sequin.shop_prod.public.products.update
  • sequin.shop_prod.public.products.delete

You can use a routing function to generate your own dynamic subjects.

Message headers

Each message includes the following NATS headers:

  • Nats-Msg-Id: A unique Sequin identifier for the message

Retry behavior

If Sequin is unable to deliver a message to NATS, it will retry the message indefinitely. Sequin will exponentially back off the retry interval, with a maximum backoff of roughly 3 minutes.

Message ordering

NATS preserves message order within a subject. Messages are published to NATS subjects in the same order that they are received from your source table.

NATS does not support ordering for message consumption. If you consume messages from a NATS subject with multiple, parallel consumers, you may not receive messages in the same order that they were published.

Debugging

You can view the status of your NATS sink in the Sequin web console.

On the “Messages” tab, you can see which messages are in-flight to NATS, which messages Sequin is unable to deliver, and recently delivered messages.

Messages that Sequin is unable to deliver will have a “Deliver count” greater than 1. You can click on a message to see more details, including the last error response received from NATS.