# NATS v2.15.0-preview.1 — Release v2.15.0-preview.1 - Product: NATS (https://whatsnew.fyi/product/nats) - Vendor: Synadia - Date: 2026-08-24 - Version: v2.15.0-preview.1 - Original notes: https://github.com/nats-io/nats-server/releases/tag/v2.15.0-preview.1 - Permalink: https://whatsnew.fyi/product/nats/releases/v2.15.0-preview.1 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add desired state metalayer for JetStream streams and consumers to improve safety and reliability of asset moves and scales - **added** — Add cancel stream move endpoint to cancel in-flight scale/move operations on a stream - **added** — Add evacuate endpoints to safely evacuate streams and consumers from a node - **added** — Add metalayer rescue endpoint for disaster recovery to temporarily lower quorum requirements - **added** — Add stream backup and restore v2 format that reads per-message and correctly includes non-replicated consumers on follower nodes - **added** — Add detection of source stream recreation to restart sourcing from the beginning - **added** — Add stream source indexing to persist last sourced indices for instant lookup instead of expensive backward scans - **added** — Add domain-prefixed JS API support in system account for operating on leaf nodes from hub - **changed** — Change replicated streams with sync_interval set to always to sync WAL entries but no longer sync upper stream layer writes - **changed** — Improve durable source and mirror consumer resets with shorter wait through heartbeat short-circuiting of recreation backoff ##### Changelog > [!IMPORTANT] > This is a preview release for the upcoming 2.15 series. This is not a formal release candidate and is still undergoing testing, but we would welcome feedback. This release also contains all changes up to and including [v2.14.5](https://github.com/nats-io/nats-server/releases/tag/v2.14.5). ###### Go Version - 1.27.0 ###### Added JetStream - Desired state metalayer (#8432, #8437, #8439, #8443, #8452, #8460, #8476) - 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 - 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 - 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 - 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 - Stream backup and restore v2 (#7882) - 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 - 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) - 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 - 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 ###### 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 ###### Complete Changes https://github.com/nats-io/nats-server/compare/v2.14.5...v2.15.0-preview.1