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.
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.
How NATS answers the questions Event Streaming turns on.
| How it works | |
| Protocol | Own NATS protocol |
| Consumption model | Core is fire-and-forget; JetStream streams replay |
| Storage | Core holds nothing; JetStream persists to file or memory |
| Delivery guarantee | At-most-once core; At-least-once with JetStream |
| Running it | |
| 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 |
| Connections | |
| Connectors | No framework in core; Synadia adds connectors |
| Transformations | Subject mapping and transforms; filter and rename, no compute |
| Cost | |
| Billing unit | None self-hosted; Synadia Cloud bills connections, storage and data |
vs NATS: Commercial · Managed · Serverless · Subscription
vs NATS: Free · Operational complexity: High · Java, Scala
vs NATS: Free · Operational complexity: High · Java