Derek Collison is, famously, one of the creators of Cloud Foundry, the platform as a service (PaaS) initiative that is seemingly taking the world by storm. Collison left VMware, the company where Cloud Foundry first saw the light of day, and headed off to found Apcera, a company in a related space. That journey was less successful, Telco vendor Ericcson “invested” (essentially acquired) the company and, as is often the case with these large corporates, the technology somewhat withered on the vine.

But Collison wasn’t done and jumped ship to found Synadia Communication, a company in (yes, there is a theme here) a related space. Synadia was created to commercialize NATS, an open source messaging system that Collison first created way back as the messaging control plane for Cloud Foundry. NATS continued on under the Apcera guise and, one assumes, as part of his leaving Apcera, Collison got to take NATS along for the ride.

Over its history, NATS has been re-conceived a few times, it was originally written in Ruby, before being ported to Go. Under the MIT open source licenses (and, more recently, Apache-2), NATS is 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. 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.

Anyway, NATS was getting a fair amount of traction in the open source, cloud-native world and this didn’t go unnoticed by the Cloud Native Computing Foundation (CNCF). The CNCF took a look, decided it would be complementary to the thousands (not quite, but there are a lot) of other projects they incubate and is this morning announcing the acceptance of NATS as an incubation-level hosted project, alongside Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, gRPC, CoreDNS, containerd, rkt, CNI, Envoy, Jaeger, Notary, TUF, Rook, and Vitess.

Somewhat interestingly here, NATS is actually a more mature project than many of the other CNCF roster. NATS has been around, in different guises, for seven years and also fulfills a very real requirement within the container-based/cloud-native world, that of messaging or, as the technical lingo puts it, InterProcess Communication (IPC). In talking about the benefits that NATS brings to the world generally, and the CNCF world, in particular, Collison says that:

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. 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.

In application, 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. The benefits that NATS brings have seen it used across various different use-cases: microservice architectures, cloud-native applications and IoT messaging. It is being adopted by a large number of organizations including such marques as Capital One, Comcast, General Electric (GE), and HTC.

MyPOV

A logical addition to the CNCF world since NATS has strong existing synergy with other CNCF projects – used heavily in conjunction with projects like Kubernetes, Prometheus, gRPC, Fluentd, Linkerd, and containerd. While many will worry about the growing breadth of the CNCF stable, to date the projects invited into the fold have been logical additions. So it is with NATS.

Ben Kepes

Ben Kepes is a technology evangelist, an investor, a commentator and a business adviser. Ben covers the convergence of technology, mobile, ubiquity and agility, all enabled by the Cloud. His areas of interest extend to enterprise software, software integration, financial/accounting software, platforms and infrastructure as well as articulating technology simply for everyday users.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.