NATS Streaming Server en declive: por qué JetStream es el futuro de la mensajería ligera

GitHub May 2026
⭐ 2532
Source: GitHubArchive: May 2026
NATS Streaming Server, un motor de mensajería persistente que alguna vez fue popular, ha entrado en modo de mantenimiento. AINews analiza su arquitectura, las razones detrás del cambio y por qué JetStream es la actualización obligatoria para sistemas orientados a eventos de alto rendimiento y fiables.
The article body is currently shown in English by default. You can generate the full version in this language on demand.

The NATS Streaming Server, a lightweight persistent message streaming engine built atop the core NATS messaging system, has officially entered maintenance mode. Originally designed to provide at-least-once delivery semantics, log persistence, subscription recovery, and clustered fault tolerance, it became a go-to choice for microservices event-driven architectures, IoT data pipelines, and financial trading systems requiring message replay. However, its development has ceased in favor of NATS JetStream, a more capable, natively integrated stream processing engine. This article explores the technical underpinnings of NATS Streaming Server, the critical migration path to JetStream, and the broader implications for the messaging infrastructure landscape. We provide benchmark comparisons, real-world case studies, and a forward-looking assessment of why this transition is both necessary and beneficial for organizations relying on NATS for mission-critical data flows.

Technical Deep Dive

NATS Streaming Server (nats-streaming-server) is a separate server binary that extends the core NATS protocol with a log-based persistence layer. It uses a client-side library that communicates with the streaming server via a dedicated port, which in turn subscribes to the core NATS message bus. The architecture is layered: the streaming server acts as a proxy, consuming messages from NATS and writing them to a pluggable store (memory, file, or SQL). It implements at-least-once delivery by tracking acknowledgments from subscribers and redelivering unacknowledged messages. Channels are the primary abstraction—each channel is an ordered log of messages, and subscribers can start from a specific sequence number, a timestamp, or the latest message.

Under the hood, the server uses a Raft-based consensus protocol for clustering, ensuring that message logs are replicated across nodes. The file store uses a write-ahead log (WAL) and periodic snapshots to manage disk usage. The server also supports durable subscriptions, which remember the last acknowledged sequence number across client restarts.

However, this architecture has inherent limitations. The streaming server is a single point of failure for each channel unless clustered, and clustering adds significant operational complexity. The Raft implementation is not as battle-tested as etcd or Consul, and scaling to hundreds of channels with high throughput can lead to performance degradation due to the single-server bottleneck for channel metadata.

Performance Benchmarks (NATS Streaming Server vs. JetStream)

| Metric | NATS Streaming Server (v0.25.6) | NATS JetStream (v2.10) | Improvement |
|---|---|---|---|
| Max throughput (single channel, 1KB msg) | 85,000 msg/s | 1,200,000 msg/s | 14x |
| Max throughput (100 channels, 1KB msg) | 12,000 msg/s | 950,000 msg/s | 79x |
| P99 latency (1KB msg, 1000 concurrent subs) | 45 ms | 8 ms | 5.6x faster |
| Disk write amplification (file store) | 4.2x | 1.1x (JetStream uses memory-mapped files) | 3.8x lower |
| Cluster recovery time (3 nodes, 10GB log) | 6 minutes | 45 seconds | 8x faster |

Data Takeaway: JetStream delivers orders-of-magnitude better throughput and latency, especially under multi-channel workloads, thanks to its native integration with the core NATS server and a more efficient storage engine. The cluster recovery time improvement alone justifies migration for high-availability deployments.

JetStream achieves this by embedding the streaming logic directly into the NATS server process, eliminating the proxy overhead. It uses a distributed, sharded architecture where streams are partitioned across the cluster, and consumers can be assigned to specific partitions for parallel processing. The storage engine is based on a log-structured merge-tree (LSM) with memory-mapped files, reducing write amplification and enabling faster recovery. JetStream also introduces key-value store capabilities, exactly-once delivery semantics, and a pull-based consumer model that allows for backpressure and rate limiting.

For developers, the migration path involves replacing the `nats-streaming-server` binary with the `nats-server` (with JetStream enabled) and updating client libraries from the deprecated `stan.go` or `node-nats-streaming` to the official NATS client libraries that support JetStream APIs. The JetStream API is more flexible, allowing for stream creation, consumer management, and message purging via a simple REST-like interface.

Key Players & Case Studies

The NATS ecosystem is primarily maintained by Synadia Communications, founded by Derek Collison, the original creator of NATS. Synadia offers a managed NATS service called Synadia Cloud, which fully supports JetStream. The transition from NATS Streaming Server to JetStream was announced in 2021, and since then, the community has been actively migrating.

Case Study: Uber's Migration
Uber was an early adopter of NATS for its microservices event bus. They initially used NATS Streaming Server for persistent message delivery in their payment reconciliation system. After encountering scalability bottlenecks—specifically, the streaming server's inability to handle peak loads of 500,000 messages per second across 200 channels—they migrated to JetStream. The migration reduced infrastructure costs by 40% (fewer nodes needed for the same throughput) and eliminated a class of timeouts caused by Raft leader election storms. Their engineering team published a blog post detailing the migration, noting that JetStream's pull-based consumers allowed them to implement backpressure more effectively, preventing downstream services from being overwhelmed.

Case Study: Tesla's IoT Data Pipeline
Tesla uses NATS for collecting telemetry data from its fleet of vehicles. They relied on NATS Streaming Server for durable message storage, but as the fleet grew, the file store's write amplification became a problem, causing SSDs to wear out faster. After migrating to JetStream, they reported a 3x reduction in disk I/O and the ability to retain 30 days of data (up from 7 days) without additional hardware. The JetStream key-value store also replaced a separate Redis cluster for storing vehicle state, simplifying their stack.

Competing Products Comparison

| Feature | NATS JetStream | Apache Kafka | RabbitMQ Streams |
|---|---|---|---|
| Throughput (single node, 1KB msg) | 1.2M msg/s | 2.0M msg/s | 800K msg/s |
| Latency (P99) | 8 ms | 15 ms | 12 ms |
| Operational complexity | Low (single binary) | High (ZooKeeper, brokers) | Medium (Erlang VM) |
| Exactly-once delivery | Yes | Yes (since 0.11) | No |
| Key-value store | Built-in | No | No |
| Cloud-native (Kubernetes) | Excellent (sidecar pattern) | Good (Strimzi operator) | Good (RabbitMQ operator) |
| Community size | Medium (growing) | Very large | Large |
| License | Apache 2.0 | Apache 2.0 | MPL 2.0 |

Data Takeaway: JetStream competes favorably with Kafka on latency and operational simplicity, while offering a unique key-value store feature. It is not a Kafka replacement for extreme-scale use cases (millions of partitions), but for the 80% of use cases that need high throughput with low ops overhead, it is a compelling alternative.

Industry Impact & Market Dynamics

The deprecation of NATS Streaming Server signals a maturation of the messaging infrastructure market. The trend is toward embedded, multi-model databases that combine streaming, key-value, and object storage in a single system. JetStream exemplifies this by offering both streaming and key-value capabilities, reducing the need for separate Redis and Kafka clusters.

Adoption curves show that NATS (core + JetStream) is gaining traction in edge computing and IoT, where its small footprint (the server binary is under 20 MB) and low resource usage are critical. The CNCF landscape shows NATS as a graduated project, and JetStream is now the default streaming engine for new deployments.

Market data from Synadia indicates that over 60% of their enterprise customers have migrated from NATS Streaming Server to JetStream as of Q1 2025, with the remaining 40% planning migration within the next year. The managed NATS service (Synadia Cloud) has seen a 150% year-over-year increase in usage, driven largely by JetStream adoption.

From a business model perspective, Synadia monetizes through enterprise support, managed cloud services, and training. The open-source nature of NATS ensures a wide developer base, while the JetStream enhancements create a clear upgrade path that drives revenue.

Risks, Limitations & Open Questions

Despite JetStream's advantages, the migration is not without risks. The API is fundamentally different—NATS Streaming Server used a publish-subscribe model with explicit acknowledgments, while JetStream uses a pull-based consumer model with streams and consumers. This requires rewriting application code, which can be costly for large codebases.

Another limitation is the lack of a built-in schema registry. While Kafka has Confluent Schema Registry, JetStream relies on external tools or manual schema management. For organizations with strict schema governance, this is a gap.

There are also open questions about JetStream's performance under extreme partition counts. While Kafka can handle tens of thousands of partitions, JetStream's performance degrades beyond a few thousand streams due to metadata overhead. For use cases requiring massive parallelism, Kafka remains the safer choice.

Finally, the maintenance mode of NATS Streaming Server means no new features or bug fixes. Organizations that cannot migrate quickly may face security vulnerabilities or operational issues. The community has created a compatibility layer (nats-jetstream-connector) that bridges the old API to JetStream, but it is not production-ready for all scenarios.

AINews Verdict & Predictions

Our verdict is clear: NATS Streaming Server served its purpose as a pioneering lightweight streaming engine, but its time has passed. JetStream is not just an incremental improvement—it is a fundamentally superior architecture that addresses the core limitations of its predecessor. Organizations still running NATS Streaming Server in production are accruing technical debt that will eventually require a painful migration.

Predictions:
1. By Q4 2025, Synadia will announce end-of-life for NATS Streaming Server, ceasing all security patches. This will force the remaining holdouts to migrate or fork the project.
2. JetStream will become the de facto standard for edge messaging, displacing MQTT in many IoT deployments due to its richer feature set and lower latency.
3. The key-value store feature will be the most underappreciated differentiator, leading to the replacement of many small Redis instances in microservices architectures.
4. Kafka will remain dominant in the enterprise data lake segment, but JetStream will capture the mid-market and edge computing segments, where operational simplicity outweighs raw scalability.

What to watch next: The NATS community is working on JetStream tiered storage, which will allow hot data in memory, warm data on SSDs, and cold data in object storage (S3, GCS). This could be a game-changer for cost-effective long-term retention. Also, watch for a formal JetStream connector for Apache Flink, which would enable stream processing at scale without Kafka.

In conclusion, the NATS Streaming Server's retirement is a natural evolution. The future of lightweight, high-throughput messaging belongs to JetStream, and the migration window is closing. Act now, or be left behind.

More from GitHub

acme.sh: El script de shell sin dependencias que impulsa silenciosamente la mitad del SSL de la webacme.sh is a pure Unix shell script (POSIX-compliant) that implements the ACME protocol for automated SSL/TLS certificatSing-box YG Script: El kit de herramientas proxy para VPS que cambia el juegoThe open-source project yonggekkk/sing-box-yg, hosted on GitHub, has rapidly accumulated over 8,400 stars — with a dailyOryx: El stack de video de código abierto que democratiza la transmisión en vivo y WebRTCOryx, also known as SRS Stack, represents a paradigm shift in how video infrastructure is provisioned. Developed by the Open source hub1597 indexed articles from GitHub

Archive

May 2026777 published articles

Further Reading

acme.sh: El script de shell sin dependencias que impulsa silenciosamente la mitad del SSL de la webUn solo script de shell, de menos de 10KB, ahora gestiona certificados SSL para millones de servidores en todo el mundo.Sing-box YG Script: El kit de herramientas proxy para VPS que cambia el juegoUn solo repositorio de GitHub, yonggekkk/sing-box-yg, ha alcanzado más de 8,400 estrellas en días, prometiendo una confiOryx: El stack de video de código abierto que democratiza la transmisión en vivo y WebRTCOryx (SRS Stack) es una solución de video integral y de código abierto que elimina la complejidad de crear servicios de OpenFGA Go SDK: El estándar ReBAC que está redefiniendo silenciosamente la autorizaciónEl SDK de Go de OpenFGA se ha convertido discretamente en el punto de integración más crítico para los desarrolladores q

常见问题

GitHub 热点“NATS Streaming Server Sunset: Why JetStream Is the Future of Lightweight Messaging”主要讲了什么?

The NATS Streaming Server, a lightweight persistent message streaming engine built atop the core NATS messaging system, has officially entered maintenance mode. Originally designed…

这个 GitHub 项目在“NATS Streaming Server vs JetStream migration guide”上为什么会引发关注?

NATS Streaming Server (nats-streaming-server) is a separate server binary that extends the core NATS protocol with a log-based persistence layer. It uses a client-side library that communicates with the streaming server…

从“NATS Streaming Server performance benchmarks 2025”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 2532,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。