NATS Messaging
   HOME

TheInfoList



OR:

NATS is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
messaging system (sometimes called
message-oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the comple ...
). The NATS server is written in the
Go programming language Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style co ...
. 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. The acronym NATS stands for Neural Autonomic Transport System. Synadia develops and provides support for NATS. NATS was originally developed b
Derek Collison
as the messaging control plane for
Cloud Foundry Cloud Foundry is an open source, multi-cloud application platform as a service (PaaS) governed by the Cloud Foundry Foundation, a 501(c)(6) organization. The software was originally developed by VMware, transferred to Pivotal Software (a joint ...
and was written in
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
. NATS was later ported to Go. The source code is released under the Apache 2.0 License. NATS consists of: * Th
NATS Server
- The core Publish-Subscribe Server for NATS.
Client libraries
for a variety of programming languages *
connector framework
- a pluggable
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
based framework to connect NATS and other services. NATS is a CNCF project with
Kubernetes Kubernetes (, commonly stylized as K8s) is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains ...
and
Prometheus (software) Prometheus is a free software application used for event monitoring and alerting. It records real-time metrics in a time series database (allowing for high dimensionality) built using a HTTP pull model, with flexible queries and real-time ale ...
integration. Microservices frameworks such a
MicroMainflux
an
Hemera
rely on NATS as their messaging backbone. The NATS server is often referred to as either 'Core NATS' or NATS with 'JetStream'. 'Core NATS' is the set of core NATS functionalities and qualities of service. 'JetStream' is the (optionally enabled) built-in persistence layer that adds streaming, at-least-once and exactly-once delivery guarantees, historical data replay, decoupled flow-control and key/value store functionalities to Core NATS. JetStream replaced the old STAN (NATS Streaming) approach.


Example

Below is a sample connection string from a telnet connection to the demo.nats.io site: Trying 107.170.221.32... Connected to demo.nats.io. Escape character is '^]'. INFO


References


See also

* Prometheus (software), Prometheus nats exporter


Further reading

* * * * * * * * * * {{Message-oriented middleware Free software programmed in Go Message-oriented middleware Cloud infrastructure Free software for cloud computing Service-oriented architecture-related products Enterprise application integration Free software