NATS Server

NATS Authors·NATSAuthors.NATSServer

High-Performance server for NATS.io, the cloud and edge native messaging system.

winget install --id NATSAuthors.NATSServer --exact --source winget

Latest 2.15.0·September 17, 2026

Release Notes

Changelog

Refer to the 2.15 Upgrade Guide for backwards compatibility notes with 2.14.x. This release also contains all changes up to and including v2.14.7.

Go Version

• 1.27.1 (#8551)

Added

JetStream

• Desired state metalayer (#8432, #8437, #8439, #8443, #8452, #8460, #8476, #8576, #8598, #8602, #8603) • A new desired state reconciliation engine for streams and consumers considerably improves the safety and reliability of asset moves and scales • Updating the placement or replication factor midway through an existing scale/move operation, cancelling an in-flight scale/move, or peer-removing is now much safer • ADR:https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-62.md • Cancel stream move endpoint (#8476) • An in-flight scale/move operation on a stream can be cancelled and the asset returned to its original placement using the new $JS.API.STREAM.CANCEL_MOVE endpoint • ADR:https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-62.md • Evacuate endpoints (#8443) • The new $JS.API.SERVER.EVACUATE endpoint can safely evacuate streams, and any consumers on those streams, from a node • The new $JS.API.STREAM.PEER.EVACUATE.* endpoint can safely evacuate a peer, and any consumers on that peer, from a stream • These operations combined allow for maintenance operations with full transfer of data and state without having to peer-remove first • ADR:https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-62.md • Metalayer rescue for disaster recovery (#8408) • The new $JS.API.META.RESCUE endpoint can temporarily lower the quorum-needed for the metalayer, in order to facilitate the recovery of a system where nodes have been permanently lost and the metalayer cannot reach quorum • ADR:https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-61.md • Stream backup and restore v2 (#7882, #8584, #8591, #8604) • A new backup format for stream snapshots which reads out per-message rather than per-block • The new backup format also now correctly includes non-replicated consumers on follower nodes • ADR:https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-63.md • Detect source stream recreation (#8384) • The server now detects a source stream being recreated, restarting the sourcing back from the beginning, ensuring new messages are sourced • Stream source indexing (#8282, #8516, #8283) • Restarts and leader changes previously required expensive backward scans through the stream to find the last sourced indices. These are now persisted in an index for instant lookup. • Domain-prefixed JS API in system account (#8429) • When a system account is bridged between the hub and a leaf node, the domain-prefixed JS API can now be used to operate on the leaf node while directly connected to the hub

Changed

JetStream

• Streams now have a default limit of 1000 consumers, unless max_consumers is specified in the stream config or account limits (#8337, #8566) • Applications planning to use a large number of consumers on a stream should configure max_consumers in the stream config or account limits to an appropriately high number • The server-wide default of 1000 can be overridden by setting default_max_consumers in the JetStream limits, or can be disabled by setting to -1 • This limit does not affect existing consumers and will not result in consumer deletions, only the creation of new consumers is prevented • Sync changes for replicated streams (#8447) • When the sync_interval is set to always, replicated streams now sync their WAL entries but no longer sync upper stream layer writes • The synced log allows the stream to recover safely, but removing unnecessary syncs from the upper stream layer dramatically improves performance • Non-replicated R1 streams are not affected by this change and will continue to sync at the stream layer as normal • The js_raft_delete_range feature is now enabled by default (#8520)

Leafnodes

• The no_advertise option no longer includes the hub's own listener address (#8451, contributed by @freakes)

Improved

JetStream

• Shorter wait for durable source/mirror consumer resets (#8323) • When using durable consumers for sourcing or mirroring, the heartbeats now short-circuit the recreation backoff • An atomic batch for a single-replica stream run with sync:always now syncs messages as a group (#8539, contributed by @RainyPixel) • JetStream source/mirror reply subjects can now opt-in to be domain/account aware (#8586, contributed by @ayushk-1801)

MQTT

• QOS 1 published into JetStream are pipelined for increased throughput (#8415, contributed by @levb)

Fixed

Leafnodes

• Leafnode isolation using request_isolation, or with hub-enforced isolate, now works correctly across cluster nodes (#8504)

Complete Changes

https://github.com/nats-io/nats-server/compare/v2.14.7...v2.15.0

Installer type: zip

x86—41AD77362FB8286863A4FE7A482D914F41DC3E209C305282B35C13FFEE1EC021
x64—2D0861DC2CA3567D17F7D19611D7B346CC2CCBD7086A0A77CC957A2C71663200
arm64—D468FA3F0AC953BED2219E37A2B5977D87CB8D705D5BBDC70B9F960E12FB7C38

Details

Homepage
https://github.com/nats-io/nats-server
License
Apache-2.0
Publisher
NATS Authors
Support
https://github.com/nats-io/nats-server/issues

Tags

cloudcloud-computingcloud-nativedistributed-systemsgogolangmessage-busmessage-queuemessagingmicroservices-architecturenats-server

Older versions (5)

2.14.7
x86—A4FABB6F65991C3EBB68DC6A2C7FA392BE576075F849A00C1006E50EEE951CFE
x64—EF6B4604CC84CD37192E6407CE1BB975F380A5293DCCFDB126EAF11311C58AC6
arm64—783903719E550953D2993620C2F932FBB00C25CA238A7A19B77A5855374D11C9
2.14.6
x86—E212979E8D68782A3E6AB2D2EF4B37885B465788B4130C252781B66DD606C0D2
x64—B47E9C69480E41E668E495E8B980B12DBF226D1CE7ECEB9C44ACDD33640BAFCD
arm64—D7D7A4D22039F265F049591194F592BAB742F33ED36236F4475F670A275946FB
2.14.5
x86—5A9C2388DB6858E15F15EF12466CBE06A4FE55564550BD0D21499A423E8E2C9D
x64—F66F840A211AB665083B88E9B7EDBCF6296CDA143BE47E53E6F6BB8520692BBB
arm64—5E1D5A5DF7DC5BD9189DAF25B1EB286EAFC62F5659CC44996BEF9294E2F4C938
2.10.25
x86—E638EE003322C68D79E19390C37B430610E803D9312E7E02F8670656AE85F70C
x64—CFC706D1ADD1D61E7F00023F12AB8E4266F2DDDCE21AC1CB0934D261D793B185
arm64—B56CFDE19C9A253601BF0E85A3981DAF66A458039459D190CE2CF5EA9D8A0842
2.9.21
x64—43DF40BCF81E819E3467A31C548643439D4200486F3032C61AE4B134243F8796
x86—9E20110CE922611C1D47834387ABE3F0F485B73A8792B3DF442946D3041C784C
arm64—3340C9E956F9D4D4E525957CA2BBEDFDDC486ABD305198699373932A376B633E