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
- NATS.io (Oct 25, 2026)
- Hello NATS Tutorial (Oct 25, 2026)
- JetStream (Oct 25, 2026)
- nats-io/nats-server (Oct 25, 2026)
- NATS Server Apache License 2.0 (Oct 25, 2026)
