A Cloud Native Computing Foundation (CNCF) committee has voted to accept the open-source project NATS as an incubation project. NATS is messaging system designed for cloud-native apps, IoT messaging and microservices.
The project was created by Derek Collison, CEO of Synadia Communications, because he believed there was a need in the industry for a simple and high-performance messaging solution. “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 Collison. “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 is made up of various integrated open-source components that can be deployed independently. The 7-year-old project was designed from the start to be cloud native and operates on servers that can be clustered to operate as a single entity, allowing clients to connect to those clusters and send and retrieve messages.
NATS implements publish/subscribe, request/reply, and distributed queue patterns, creating a secure method of interprocess communication. With NATS Streaming, a data streaming system powered by NATS, users can retrieve messages that were published offline or replay series of messages. Streaming increases stability because it provides a buffer, allowing applications to offload local message caching and buffering logic into NATS. This ensures that messages will not be lost, according to the foundation.
“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 CNCF TOS 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.”
Other features of NATS include a clustered mode server, auto-pruning of subscribers, text-based protocol, and an event streaming service. According to the CNCF, NATS will be beneficial to other CNCF projects such as Kubernetes, Prometheus, gRPC, Fluentd, Linkerd and containerd.