NATS Server 2.9 Release: More Stability, Greater Scale, Better Security

Byron Ruth

Posted on Sep 19th, 2022

We proudly announced last week the first release of the 2.9.x series! 🚀 This is a major release for us in ways I’ll go over in this post.

First thing’s first. Thank you to the 48 contributors ❤️ through GitHub issues, discussion posts, and pull requests. Beyond those direct contributors, hundreds of folks in our Slack community helped out with their questions, use cases and testing of early versions.

The 2.9 release focuses on improving the JetStream persistence layer in multiple ways including:

JetStream Elevating NATS to a True Global Utility for Communications

Announced in March 2021, JetStream extends NATS to provide at-least-once and exactly-once delivery guarantees as a first-class subsystem of the NATS server. The community quickly embraced JetStream and we have seen a lot of novel use cases that require enhanced scaling and performance. JetStream contributes to the big vision for NATS of providing a connective technology for all communications use cases between applications in the cloud, on the edge, and even in space.

JetSteam truly takes NATS to the next level, not only by adding persistence and the ability to better handle IoT / edge applications that suffer from intermittent connectivity but also with entirely new capabilities like an integrated key-value and object store (beta). With JetStream, NATS becomes a true utility tool – building on the vision of NATS creator Derek Collison, to make connectivity a global utility supporting numerous use cases with a single tech stack. Like the rest of NATS, all of this comes in a fully open sourced package, wrapped into a small, static binary, with no (as in zero) dependencies. 🎉

Taking JetStream to the Next Level

The 2.9 release takes all of this goodness to the next level. Some of the specific benefits the 2.9 brings to users include:

  • Reduced time and bandwidth for replication catch-up
  • Improved message distribution
  • Better handling of memory usage for containerized environments
  • Replica and mirror-based direct gets
  • Stream and key-value message republishing
  • Consumer replica, storage, and filter subject change
  • Server tags and portable streams

NATS 2.9 also adds key new capabilities in security and operability including:

  • AES-GCM cipher for JetStream file-based encryption
  • Account purge operation
  • Templates for scoping signing keys
  • New and enhanced subject mapping functions.

A special thanks to the core NATS contributor team for working so hard over the last few weeks to get this release right. Please read the full release blog post on the project blog. You’ll find code examples and much greater detail.

Please download NATS 2.9. Take it for a spin. Tell us what you think on Slack or GitHub. And if you are interested in contributing to ongoing NATS development, we’d love to have you.