← Back to all sparks
N

NATS

DEVOPS
Velocity5.0

High-performance messaging system for distributed applications

NATS runs two release trains in lockstep, with JetStream's storage layer taking the load

messagingjetstreamraftdual-branchstorage
Current state
NATS ships 2.14.x and 2.12.x within a minute of each other, carrying near-identical changes — the 2.13 line was skipped entirely. Recent work is concentrated in JetStream internals: the Raft transport layer has been decoupled, and the disk concurrency semaphore was raised to 4096 slots from a CPU-scaled count. Alongside that runs a steady stream of Go toolchain and dependency updates.
Where it's heading
The dual-train pattern means NATS is supporting the older line as a first-class target rather than a legacy branch, so operators are not being pushed to upgrade. The substance is all durability and throughput plumbing under JetStream — protocol corruption fixes, stream and consumer assignment refactoring, and a regression that produced spurious 'Message Not Found' errors. Nothing here changes the surface a client sees.
Prediction
Expect the paired 2.14.x / 2.12.x cadence to continue with further JetStream storage and Raft work; a new feature line would most likely appear as 2.15 rather than on either current branch.

Recent moves

  1. 7d ago

    NATS 2.14.4: Raft transport decoupled, disk concurrency raised to 4096

    Decouples the JetStream Raft transport layer — presented as a testability change with no behavioural effect — and raises the disk concurrency semaphore to 4096 slots, replacing the previous CPU-scaled limit. The semaphore change is the one likely to show up in throughput on dense nodes.

    View source ↗
  2. 7d ago

    NATS 2.12.14 mirrors the 2.14 JetStream storage changes

    The same Raft transport decoupling and disk concurrency increase, cut for the 2.12 line under a minute after its 2.14 twin. Confirms the older branch is receiving current internals work rather than fixes only.

    View source ↗
  3. 1mo ago

    Release v2.14.3

    Demotes noisy per-connection log lines to debug level and applies writer options consistently in s2_fast compression mode, plus dependency bumps. Operator quality-of-life rather than functional change.

    View source ↗
  4. 1mo ago

    Release v2.12.12

    The 2.12 counterpart to 2.14.3, carrying the same log demotion and compression fixes plus a refactor of stream and consumer assignment handling.

    View source ↗
  5. 1mo ago

    NATS 2.12.11 fixes stale subject state causing Message Not Found

    A targeted fix for a regression introduced in 2.12.7 where stale subject-state tracking surfaced as 'Message Not Found' errors on streams with a max-messages-per-subject limit. The notes explicitly clear the 2.14 line of the same bug.

    View source ↗
  6. 2mo ago

    NATS 2.14.2 closes two protocol corruption paths

    Exposes client ID through the embedded ClientAuthentication API and closes two protocol-level corruption paths — one from rewriting $JS.ACK subjects, one from buffer misuse in compressed WebSocket clients. Corruption fixes at the protocol layer are worth an upgrade on their own.

    View source ↗