Explore CNCF Incubating App Definition and Development / Streaming & Messaging

Technology Guide

NATS

License: Apache-2.0

NATS Logo

Field Guide

Complete Guide

NATS is a high-performance messaging system that provides publish/subscribe, request/reply, and queue group semantics over a single, lightweight protocol. The core server is written in Go, runs as a single static binary, and is designed to handle millions of messages per second per node with sub-millisecond latency.

Subjects are hierarchical, dot-separated strings (e.g. orders.us.west.created) and support wildcards for fan-out routing. JetStream, the built-in persistence layer, adds at-least-once and exactly-once delivery, message replay, key-value and object stores, and Raft-replicated streams across clusters. Servers connect in a full mesh and can be federated across regions using leaf nodes and gateways, which makes NATS well-suited to edge and multi-cloud topologies where Kafka’s broker model is too heavy.

NATS is commonly compared to Kafka, RabbitMQ, and Redis Streams. It is lighter than Kafka (no ZooKeeper or KRaft, no per-topic partitions to manage) but provides durable streams via JetStream when you need them. It ships clients for Go, Rust, Java, .NET, Python, JavaScript, and C, and integrates with Dapr, Benthos, CloudEvents, and Kubernetes via the NATS operator and Helm charts.

CNCF Project

Cloud Native Computing Foundation

Accepted: 2018-03-15
Incubating: 2018-03-15

Community

Join the conversation

No articles found for NATS yet. Check back soon!