NATS Server

github.com ↗

Connect distributed services through lightweight subject-based messaging, with optional persistence via JetStream.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about NATS Server

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the NATS Server homepage

What it does

NATS Server routes messages between clients using subjects and publish-subscribe. Core NATS delivers to subscribers that are connected at the time of publication; JetStream adds persistence so messages can survive restarts and be replayed with at-least-once delivery. The official hello tutorial starts a server, subscribes one terminal to a subject, and publishes a message from another.

Start with the official hello tutorial's smallest useful flow: run a NATS server, open one terminal as a subscriber to a subject, and publish a message to that subject from another terminal. This makes the subject-based publish/subscribe model concrete before you connect application clients. Core NATS is appropriate when active subscribers should receive messages immediately; it is not a durable queue, and a subscriber that is offline at publish time does not receive that transient message. When the application needs stored messages, replay, or at-least-once delivery, enable JetStream and choose its persistence and consumer configuration deliberately. The official concept guide describes JetStream as a persistence layer over Core NATS.

The NATS server repository publishes Apache License 2.0 source unless a file says otherwise. Running the server yourself also means selecting a deployment and monitoring its resource use; this listing covers the server software, not a managed NATS Cloud plan.

Strengths

  • Subject-based publish/subscribe can connect services without requiring a publisher to know each subscriber.
  • JetStream adds persistence and replay for applications that need messages to outlive active connections.
  • The official tutorial provides a simple two-terminal first-message workflow.

Watch out for

  • Core NATS delivers only to subscribers connected at publication time, so it is not by itself a durable message queue.
  • JetStream's persistence and delivery guarantees require separate configuration and operational decisions.
  • A self-hosted deployment requires the team to operate the NATS server.

Best for

  • Developers connecting distributed services with subject-based messaging.
  • Systems that need lightweight pub/sub or request messaging, with JetStream added when durable delivery is required.
  • Teams that prefer an open-source messaging server they can run in their own environment.

Sources