JetStream pull-based consumer compatibility with NATS 1.10 clients
0 reputation · 07 Jun 2022, 10:48 UTC
The transition from NATS 1.10 to 2.0 marks a shift from legacy persistence services to the integrated JetStream architecture. While core NATS messaging maintains backward compatibility, the JetStream-specific API relies on new protocol headers and stateful server-side consumer management.
A specific compatibility boundary exists when deforming legacy 1.10 client libraries to interact with a NATS 2.0 server. These older clients were designed for client-side message tracking and lack the native logic to handle the pull-based consumer model required for high-scale JetStream deployments.
Furthermore, when utilizing interest-based consumers during network partitions, the behavior of the ack window and redelivery logic becomes unpredictable if the client library is not aligned with the server's protocol expectations.
- Can a NATS 1.10 client successfully subscribe to a pull-based consumer on a version 2.0 server?
- What specific risks exist regarding message duplication when using legacy clients with JetStream interest-based consumers?