Edit on GitHub

NATS Server

NATS provides a server that is written in the Go programming language. The executable name for the NATS server is gnatsd, which stands for Go NATS Deamon. The NATS server is provided as open source software under the MIT license. Apcera actively maintains and supports the NATS server.

Installation

NATS provides a server binary for Linux, Mac, and Windows. You can install the server from source on any platform you choose.

Usage

The NATS server is easy to use, supports authorization, and provides logging facilities.

Configuration

NATS provides a rich set of commands and parameters to configure all aspects of the server. You can run the server without any commands on the default port, or use the command line or a config file to configure the server.

Containerization

A fully configured NATS server is provided as a Docker image that you can pull from the Docker Hub.

Clustering

One of the design goals of NATS is that it be always on and available like a dial tone. To implement this design goal, NATS provides mechanisms for clustering servers to achieve resiliency and high availability.

Auto-Pruning

NATS provides built-in mechanisms to manage slow consumers and lazy listeners. If a subscriber is not quick enough, or is not responding, the NATS server cuts it off.

Monitoring and Troubleshooting

The NATS server exposes a monitoring port and several endpoints with JSON payloads that you can use to monitor the system and create custom monitoring applications.

Server Statistics

The nats-top utility lets you monitor NATS server activity in real time and view subscription statistics.

Performance Benchmarking and Tuning

NATS provides a robust set of tooling for performance benchmarking and tuning the messaging system.