Skip to content

nats-io/nats.docs

Repository files navigation

layout
title description tableOfContents outline pagination
visible
true
visible
true
visible
true
visible
true
visible
true

Welcome

The official NATS documentation

NATS is a simple, secure and high performance open source data layer for cloud native applications, IoT messaging, and microservices architectures.

We feel that it should be the backbone of your communication between services. It doesn't matter what language, protocol, or platform you are using; NATS is the best way to connect your services.

10,000 foot view

  • Publish and subscribe to messages at millions of messages per second. At least once delivery.
  • Supports fan-in/out delivery patterns
  • Request/reply
  • Every major language is supported
  • Persistence via JetStream
    • at most once delivery or exactly once delivery
    • work queues
    • stream processing
    • data replication
    • data retention
    • data deduplication
    • Higher order data structures
      • Key/Value with watchers, versioning, and TTL
      • Object storage with versioning
  • Security
    • TLS
    • JWT-based zero trust security
  • Clustering
    • High availability
    • Fault tolerance
    • Auto-discovery
  • Protocols supported
    • TCP
    • MQTT
    • WebSockets

All of this in a single binary that is easy to deploy and manage. No external dependencies, just drop it in and add a configuration file to point to other NATS servers and you are ready to go. In fact, you can even embed NATS in your application (for Go users)!

Guided tour

  1. In general we reccomend trying to solve your problems first using Core NATS.
  2. If you need to share state between services, take a look at the KV or Object Store in JetStream.
  3. When you need lower level access to persistence streams, move on to using JetStream directly for more advanced messaging patterns.
  4. Learn about deployment strategies
  5. Secure your deployments with zero trust security

Contribute

NATS is Open Source as is this documentation. Please let us know if you have updates and/or suggestions for these docs. You can also create a Pull Request using the Edit on GitHub link on each page.

Additional questions?

Feel free to chat with us on Slack slack.nats.io.

Thank you from the entire NATS Team of Maintainers for your interest in NATS!