The NATS.io team is always working to bring you features to improve your NATS experience. Below you will find feature summaries for new implementations to NATS. Check back often for release highlights and updates.
- Richer API errors. JetStream errors now contain an ErrCode that uniquely describes the error.
- Ability to send more advanced Stream purge requests that can purge all messages for a specific subject
- Stream can now be configured with a per-subject message limit
- Encryption of JetStream data at rest
For full release information, see links below;
- Release notes 2.3.0
- Full list of Changes 2.2.6...2.3.0
See NATS 2.2 for new features.
Monitoring endpoints as listed in the table below are accessible as system services using the following subject pattern:
$SYS.REQ.SERVER.<id>.<endpoint-name>
(request server monitoring endpoint corresponding to endpoint name.)$SYS.REQ.SERVER.PING.<endpoint-name>
(from all server request server monitoring endpoint corresponding to endpoint name - will return multiple messages)
For more information on monitoring endpoints see NATS Server Configurations System Events.
Configuration of no_auth_user
allows you to refer to a configured user/account when no credentials are provided.
For more information and example, see Securing NATS
For full release information, see links below;
- Release notes 2.1.7
- Full list of Changes 2.1.6...2.1.7
This release adds the ability to specify TLS configuration for the account resolver.
resolver_tls {
cert_file: ...
key_file: ...
ca_file: ...
}
trace_verbose
and command line parameters -VV
and -DVV
added. See NATS Logging Configuration
We've added the option to include subscription details in monitoring endpoints /routez
and /connz
. For instance /connz?subs=detail
will now return not only the subjects of the subscription, but the queue name (if applicable) and some other details.
- Release notes 2.1.6
- Full list of Changes 2.1.4...2.1.6
NATS introduces logfile_size_limit
allowing auto-rotation of log files when the size is greater than the configured limit set in logfile_size_limit
as a number of bytes. You can provide the size with units, such as MB, GB, etc. The backup files will have the same name as the original log file with the suffix .yyyy.mm.dd.hh.mm.ss.micros. For more information see Configuring Logging in the NATS Server Configuration section.
- Release notes 2.1.4
- Full list of Changes 2.1.2...2.1.4
Queue Permissions allow you to express authorization for queue groups. As queue groups are integral to implementing horizontally scalable microservices, control of who is allowed to join a specific queue group is important to the overall security model. Original PR - nats-io/nats-server#1143
More information on Queue Permissions can be found in the Developing with NATS section.
As services and service mesh functionality has become prominent, we have been looking at ways to make running scalable services on NATS.io a great experience. One area we have been looking at is observability. With publish/subscribe systems, everything is inherently observable, however we realized it was not as simple as it could be. We wanted the ability to transparently add service latency tracking to any given service with no changes to the application. We also realized that global systems, such as those NATS.io can support, needed something more than a single metric. The solution was to allow any sampling rate to be attached to an exported service, with a delivery subject for all collected metrics. We collect metrics that show the requestor’s view of latency, the responder’s view of latency and the NATS subsystem itself, even when requestor and responder are in different parts of the world and connected to different servers in a NATS supercluster.
- Release notes 2.1.0
- Full list of Changes 2.0.4...2.1.0
For services, the authorization for responding to requests usually included wildcards for _INBOX.> and possibly $GR.> with a supercluster for sending responses. What we really wanted was the ability to allow a service responder to only respond to the reply subject it was sent.
Exported Services were originally tied to a single response. We added the type for the service response and now support singletons (default), streams and chunked. Stream responses represent multiple response messages, chunked represents a single response that may have to be broken up into multiple messages.
- Release notes 2.0.4
- Full list of Changes 2.0.2...2.0.4