Built from the ground up to be cloud native, NATS is a mature, seven-year-old open source messaging technology that implements the publish/subscribe, request/reply and distributed queue patterns to help create a performant and secure method of InterProcess Communication (IPC). Simplicity, performance, scalability and security are the core tenets of NATS.

The project consists of a family of open source components that are tightly integrated but can be deployed independently. NATS is based on a client-server architecture with servers that can be clustered to operate as a single entity – clients connect to these clusters to exchange data encapsulated in messages.

“While most messaging systems provide a mechanism to persist messages and ensure message delivery, NATS does this through log based streaming – which we’ve found to be an easier way to store and replay messages,” said Derek Collison, CEO of Synadia Communications and creator of NATS. “NATS is a simple yet powerful messaging system written to support modern cloud native architectures. Because complexity does not scale, NATS is designed to be easy to use while acting as a central nervous system for building distributed applications.”

NATS Streaming subscribers can retrieve messages published when they were offline, or replay a series of messages. Streaming inherently provides a buffer in the distributed application ecosystem, increasing stability. This allows applications to offload local message caching and buffering logic into NATS and ensures a message is never lost.

NATS was created by Derek Collison, founder and CEO at Synadia in response to the market need for a simple and high performance messaging solution. The Synadia team maintains the NATS Server (written in Go), NATS Streaming and clients written in Go, Python, Ruby, Node.js, Elixir, Java, NGINX, C and C#. The community has contributed a growing list of libraries, including Arduino, Rust, Lua, PHP, Perl and more. NATS is also available as a hosted solution, NATS Cloud.

“Today’s cloud native landscape emphasizes scalability and total flexibility, emphasizing the need to transfer data between processes quickly, reliably and securely,” said Chris Aniszczyk, COO of Cloud Native Computing Foundation and VP of Developer Relations at The Linux Foundation. “Messaging was born to address this. In its contribution to CNCF, NATS fills a gap for a mature, cloud native messaging solution – the broad client coverage and simplicity of the protocol will make support for and integration with with future cloud native systems straightforward.”

NATS has very strong existing synergy and inertia with other CNCF projects – used heavily in conjunction with projects like Kubernetes, Prometheus, gRPC, Fluentd, Linkerd and containerd.

Main features:

Pure pub-sub

Clustered mode server

Auto-pruning of subscribers

Text-based protocol

Multiple qualities of service (QoS)

Durable subscriptions

Event streaming service

Last/Initial value caching

Notable Milestones:

44 contributors

3,820 GitHub stars

20 releases

1,356 commits

415 forks

“Messaging and integration middleware paradigms have changed radically in the cloud native era and NATS represents a view into the future of application-to-application and service-to-service IPC,” said TOC representative and project sponsor, Alexis Richardson. “The performant nature of NATS makes it an ideal base for building modern, reliable, scalable cloud native distributed systems, making the project a great fit for CNCF.”

As a CNCF hosted project, NATS is part of a neutral cloud native foundation aligned with its technical interests, as well as the larger Linux Foundation, which provides the technology with project governance, marketing support and community outreach.