NATS Messaging

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Developer(s)Synadia Communications, Inc.
Stable release
1.4.1 / 7 February 2019; 2 months ago (2019-02-07)
Written inGo
Operating systemCross-platform
TypeMessage broker, Open Source Messaging, message-oriented middleware
LicenseApache 2.0

NATS is an open-source messaging system (sometimes called message-oriented middleware). The NATS server is written in the Go programming language. Client libraries to interface with the server are available for dozens of major programming languages. The core design principles of NATS are performance, scalability, and ease of use.[1]

Synadia develops and provides support for NATS. NATS was originally developed by Derek Collison as the messaging control plane for Cloud Foundry and was written in Ruby. NATS was later ported to Go. The source code is released under the Apache 2.0 License. NATS consists of:

  • The NATS Server - The core Publish-Subscribe Server for NATS.
  • NATS Streaming - A data streaming system powered by NATS that adds persistence, message replay, durable subscriptions, etc. to NATS.
  • Client libraries for a variety of programming languages
  • A connector framework - a pluggable Java based framework to connect NATS and other services.

Microservices frameworks such as Micro, Mainflux, and Hemera rely on NATS as their messaging backbone.


Below you can see a sample connection string from a telnet connection to the site[2]

telnet 4222

Connected to
Escape character is '^]'.
INFO {"server_id":"1ec445b504f4edfb4cf7927c707dd717","version":"0.6.6","go":"go1.4.2","host":"",


  1. ^ "NATS Documentation".
  2. ^ "NATS Protocol". NATS Documentation. Retrieved 6 May 2016.

Further reading[edit]