Continuing to fill out its portfolio of cloud-friendly infrastructure software, the Cloud Native Computing Foundation (CNCF) has accepted the NATS messaging software as an incubation-level hosted project.
“From day one, NATS has proven itself as a tool for building distributed systems,” said Alexis Richardson, a member of the CNCF Technical Oversight Committee and sponsor of the project.
Richardson’s company, Weaveworks, uses NATS as part of its own container management platform, along with CNCF’s Kubernetes container orchestration manager. “Just as we can run Kubernetes everywhere and have cloud-native patterns, we can run NATS anywhere and have cloud-native patterns,” Richardson said.
“At heart, NATS is extremely easy to use and resilient, and that ‘s why I think it is a good fit for the CNCF,” said NATS creator Derek Collison. Collison now is CEO of Synadia Communications, which maintains the codebase for the open source NATS server and client software and associated libraries.
Messaging technology veteran Collison was at VMware when he created NATS seven years ago as a control plane for the Cloud Foundry platform-as-a-service software. After a decade of heavy messaging technologies such as the enterprise service bus (ESB), NATS was designed to be a “return to simplicity,” Collison said.
“It’s quite easy for developers to learn,” Richardson agreed. “The protocol is quite simple. it’s very easy to understand and debug.”
Another key design decision of NATS was to have the technology maintain connectivity for every end-node, even if some go offline. With cloud-based systems, “There are very many patterns that cloud messaging needs support for,” Richardson said. Many of these patterns are “decoupled in space and time,” meaning all the nodes that need to communicate with one another are not always online at the same time.
NATS tackles this issue through log based streaming, which provides a simple way to store and replay messages so they can be ingested when the missing end-point returns back online. NATS implements popular messaging queuing patterns for distributed systems, such as publish/subscribe and request/reply.
A mature technology, NATS is already deployed in a number of cloud-native and Internet of Things systems, including those run by Apcera, Apporeto, Baidu, Capital One, Cloud Foundry, Comcast, Ericsson, General Electric (GE), Netlify, Pivotal, Samsung, and VMware.
NATS joins 16 other cloud-native technologies stewarded by the CNCF: Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, gRPC, CoreDNS, containerd, rkt, CNI, Envoy, Jaeger, Notary, TUF, Rook and Vitess. NATS has also used heavily in conjunction with many of these projects, notably Kubernetes, Prometheus, gRPC, Fluentd, Linkerd and containerd.