nats-architecture-and-design icon indicating copy to clipboard operation
nats-architecture-and-design copied to clipboard

Bind subscribe validation

Open scottf opened this issue 3 years ago • 4 comments

Overview

Should a bind subscription be required to validate against subscribe subject / filter and other subscribe option logic like preventing consumer configuration changes, or should a bind ignore all these checks except for ensuring the consumer is found?

The behavior will be documented in ADR-15

Clients and Tools

  • [x] Go @piotrpio
  • [x] Java @scottf - This client validates
  • [x] JavaScript @aricart
  • [x] .Net @ColinSullivan1 @scottf - This client validates
  • [x] C done by kozlovic
  • [ ] Python @wallyqs
  • [ ] Ruby @wallyqs
  • [x] Rust @Jarema

Other Tasks

Client authors please update with your progress. If you open issues in your own repositories as a result of this request, please link them to this one by pasting the issue URL in a comment or main issue description.

scottf avatar Nov 16 '21 17:11 scottf

The java /.net clients perform filter validation and check for consumer changes even when the user specifies to bind.

scottf avatar Nov 16 '21 19:11 scottf

For the javascript clients if the filter subject doesn't match the filter subject on the durable consumer, the operation is rejected.

aricart avatar Nov 30 '21 17:11 aricart

For Go client, operation is rejected if there are any discrepancies between what's on the consumer vs what's in user config: https://github.com/nats-io/nats.go/commit/d5b5768e78d23ef4973efefac43cf0a9a69a6e69

piotrpio avatar Jun 03 '22 13:06 piotrpio

In Rust simplified Jetstream approach, we're binding by consumer name.

Jarema avatar Aug 30 '22 11:08 Jarema