NATS
v2.15.0Networking & Messaging2026년 9월 17일
JetStream 운영 및 복구 기능이 확장되고, 소비자 제한과 기능 기본값이 변경된 릴리스입니다. 성능 개선과 leafnode 격리 수정도 포함됩니다.
조치 필요 (1)
breaking
js_raft_delete_range기본 활성화js_raft_delete_range기능이 기본으로 활성화됩니다.
영향 확인 (1)
breaking
Streams의 기본 소비자 제한 변경Streams를 사용하는 경우 적용됩니다.스트림의 기본 소비자 수 제한이 1000으로 설정됩니다. 스트림 설정 또는 계정 제한에서
max_consumers를 지정하면 해당 값을 따르며, 서버 전체 기본값은default_max_consumers로 변경하거나-1로 비활성화할 수 있습니다. 기존 소비자에는 영향이 없고 새 소비자 생성만 제한됩니다.
그 외 기록된 변경 16건 전체additions 9 · value changes 6 · fixes 1
additions (9)
- - 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.endpoint - ADR: https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-62.mdAPI. STREAM. CANCEL_MOVE - - Evacuate endpoints (#8443) - The new
$JS.endpoint can safely evacuate streams, and any consumers on those streams, from a node - The newAPI. SERVER. EVACUATE $JS.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.mdAPI. STREAM. PEER. EVACUATE. * - - Metalayer rescue for disaster recovery (#8408) - The new
$JS.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.mdAPI. META. RESCUE - - 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
- - JetStream source/mirror reply subjects can now opt-in to be domain/account aware (#8586, contributed by @ayushk-1801)
value changes (6)
- - 1.27.1 (#8551)
- - Sync changes for replicated streams (#8447) - When the
sync_intervalis set toalways, 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
no_advertiseoption no longer includes the hub's own listener address (#8451, contributed by @freakes) - - 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: alwaysnow syncs messages as a group (#8539, contributed by @RainyPixel) - - QOS 1 published into JetStream are pipelined for increased throughput (#8415, contributed by @levb)
fixes (1)
- - Leafnode isolation using
request_isolation, or with hub-enforcedisolate, now works correctly across cluster nodes (#8504)
NATS 스택에 추가
조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 브레이킹 체인지 같은 것들입니다.