Skip to content

WebSocket manual consumer flow control #3052

@cbornet

Description

@cbornet

Currently in the WebSocket proxy, receiverQueueSize is used for both sizing the internal buffer of incoming messages and also to ensure flow control with the WS-proxy client by stopping sending messages if the number of unacked messages reaches the receiverQueueSize.
This is a simple mode but there are cases where you want to have more control over how the messages are delivered and acked. For instance you may want to ack the messages in a distinct connection. Or you may want to get a certain amount of messages in a "pull" fashion. The pull-mode is generally the best way to provide back-pressure.
To provide this, we could:

  • add a param to deactivate the check on the number of unacked messages sent (or maybe have one distinct from receiverQueueSize and that can be set to 0-infinity)
  • add a field in ConsumerAck to allow more messages from the proxy (permits ?).

Metadata

Metadata

Assignees

Labels

area/websockettype/enhancementThe enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions