# NATS

> Single-binary messaging with optional JetStream persistence

NATS is a messaging system distributed as one small Go binary, offering at-most-once core messaging with JetStream adding a persistence layer for at-least-once delivery, replay, and server-side consumer state.

Website: https://nats.io

## Use it when

- You want the smallest possible messaging footprint: one Go binary, no dependencies, clustered only when you need replicas.
- Most traffic is fire-and-forget service messaging, and only some subjects deserve durability; JetStream adds replayable streams exactly where warranted.
- The domain is cloud-native services, IoT, or edge, where lightweight protocols and superclusters across regions fit better than an analytics log.
- Latency and simplicity beat throughput ceremony; request-reply and pub-sub are first-class patterns.

## Think twice when

- The platform is an analytics backbone; the ecosystem of connectors, processors, and warehouse integrations lives around Kafka, not NATS.
- You need exactly-once end to end; JetStream gives at-least-once with acknowledgements.
- A connector framework is expected in the box; core NATS has none, with Synadia providing connectors commercially.

## How it runs

Self-host a single binary and cluster it for JetStream replication (R1, R3, or R5 per stream); JetStream persists to file or memory, and superclusters link clusters through gateways. Subject mapping filters and renames without compute. Synadia Cloud is the managed option, billed on connections, storage, and data.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (permissive) |
| SPDX identifier | Apache-2.0 |
| Deployment | Self-hosted, Managed, Hybrid |
| Workload | Streaming |
| Operational complexity | Low |
| Pricing | Free, Subscription |
| Language | Go |
| Repository | https://github.com/nats-io/nats-server |
| Documentation | https://docs.nats.io |
| Stars | 20.8k |

### Event Streaming

| Attribute | Value |
| --- | --- |
| Protocol | Own NATS protocol |
| Consumption model | Core is fire-and-forget; JetStream streams replay |
| Storage | Core holds nothing; JetStream persists to file or memory |
| What you run | One Go binary, no dependencies; cluster it for JetStream replicas |
| Scaling | Add servers to the cluster; streams choose R1, R3 or R5 replicas |
| Multi-region | Superclusters via gateways; JetStream mirrors and sources across clusters |
| Delivery guarantee | At-most-once core; At-least-once with JetStream |
| Connectors | No framework in core; Synadia adds connectors |
| Transformations | Subject mapping and transforms; filter and rename, no compute |
| Billing unit | None self-hosted; Synadia Cloud bills connections, storage and data |

## Capabilities

- [Event Streaming](https://matca.io/capabilities/event-streaming)

---

Source: https://matca.io/nats
Last updated: 2026-08-31T11:40:46.914Z
