nats-architecture-and-design
nats-architecture-and-design copied to clipboard
Architecture and Design Docs
## Overview Client should have a way that allows users to force reconnection process. This can be useful for refreshing auth or rebalancing clients. When triggered, client will drop connection...
## Overview KV watch supports only single filter, which has limitations similar to those of single filter consumers. Clients should support `kv::watch` watching multiple filters, leveraging consumers with multiple filters....
### Paraphrase The question here is two-fold. 1. Could (should) the KV api be expanded to allow putting headers as well the value with a key. 2. Is it safe...
## Overview Since nats-server 2.10, Consumer Create API (`$JS.API.CONSUMER.CREATE` & $JS.API.CONSUMER.DURABLE.CREATE`) support `action` field. This allows for clients to specify the intent when calling `CREATE`, which in turn allows for...
Referring to this PR https://github.com/nats-io/nats.go/pull/1584 this includes an add() method to add a header key and value. This would facilitate extra context since the service doesn't have direct access to...
## Overview Because of the way the server stacks values during republishes, the last value for each header field is the correct value for direct messages ``` Nats-Subject Nats-Sequence Nats-Last-Sequence...
## Overview In 2.11 consumers can be paused using the API and optionally started paused. Clients should at the very least support the added fields to config and state for...
Consistently hashed partitioned consumer groups (including exclusive client consumption from a durable consumer) for streams.
### Motivation NATS clients provide the KeyValue interface with methods for optimistic atomic updates. (Eg: In Java, [KeyValue.update(key, value, expectedRevision)](https://github.com/nats-io/nats.java/blob/main/src/main/java/io/nats/client/KeyValue.java#L117)) There doesn’t appear to be a way to specify an...