Open pcosquer opened 1 year ago
Hey. I think I know what's going on here, I'll put up a fix sometime today.
The core NATS client input
and output
shouldn't be sending Acks, as it's a fire and forget messaging protocol. Only the JetStream based components should be sending acks in this case.
Hey. I think I know what's going on here, I'll put up a fix sometime today.
The core NATS client
input
andoutput
shouldn't be sending Acks, as it's a fire and forget messaging protocol. Only the JetStream based components should be sending acks in this case.
Thanks , I had same problem a while back
So after digging into this a little bit today, and the history why this was added, it may make sense to either keep it or evolve it into something configuration driven. We probably can't break existing clients that rely on this, so maybe we add a flag to be able to disable replies on a NATS input.
I was thinking a flag also.
We would have to also change the benthos syntax for using the nats plugin ?
Hi, As being said, if following the spec, there should not be any ACK sent in the nats-core protocol. For the existing client, maybe a 2-steps approach with a warning to have them upgrade their connector to the jetstream one can be an option ?
Hi, As being said, if following the spec, there should not be any ACK sent in the nats-core protocol. For the existing client, maybe a 2-steps approach with a warning to have them upgrade their connector to the jetstream one can be an option ?
Presuming you mean new nats client API ? github.com/nats-io/nats.go/jetstream at https://github.com/nats-io/nats.go/tree/main/jetstream
Sorry, typo, I meant clientS as in users
We would have to also change the benthos syntax for using the nats plugin ?
@gedw99 What do you mean by changing the syntax?
Hello, I'm running nats in a container, jetstream is enabled:
Benthos is listening on all topics:
When benthos is running, it breaks other jetstream clients
For example, this go program
will print some errors:
With nats-py, error is different
If I dump all messages with nats-sub, I can see that benthos sends ack messages to other client inboxes:
There is an issue if benthos acknowledges the message before nats. I don't know why I only see ack on _inbox subjects.
I'm using this branch https://github.com/benthosdev/benthos/pull/1769, as it fixes issue with the flood of stream requests.
A workaround is to listen on a more specific subject.