Skip to content

Add Nats JetStream as a sink#2148

Open
koocbor wants to merge 2 commits into
sequinstream:mainfrom
koocbor:nats-jetstream
Open

Add Nats JetStream as a sink#2148
koocbor wants to merge 2 commits into
sequinstream:mainfrom
koocbor:nats-jetstream

Conversation

@koocbor

@koocbor koocbor commented Jun 26, 2026

Copy link
Copy Markdown

I like Sequin as a CDC solution, however in my current project we use NATS JetStream for our events. We tried using the existing NATS sink, but our consumers are occasionally missing events if they happen to be down when a CDC message is published to the NATS subject.

This PR adds support for NATS JetStream as a sink for sequin. The existing NATS sink doesn't provide persistence making it non-ideal in scenarios where the event consumers might not always be running.

The biggest change in this PR is to use Gnat.request instead of the existing Gnat.pub to send messages to a JetStream subject. There are also a few additional configuration values for the NATS JetStream sink such as stream name and domain.

I am not an elixir developer and have tried to follow the existing patterns as closely as possible so please forgive any egregious errors.

I also updated the documentation for the existing NATS sink that had a repeated line in the how-to document.

Thanks for considering.

@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. documentation Improvements or additions to documentation enhancement New feature or request sink-nats labels Jun 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request sink-nats size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant