Transmit backpressure across multiple rsocket node


I have 3 rsocket nodes. Node1 is a rsocket client to Node2. Node1 is generating data every 500ms.
Node2 is doing some operation on the stream. Node2 is again client to Node3.
Node3 can process the data in 5s.

Node3, being a slow consumer, I am expecting Node1 to slow down.
This is not happening. Node3 is buffering the data in it’s memory.

Am I conceptually wrong in understanding that backpressure can be transmitted back to original producer over the network?

Kindly guide.


Do you have a code example I could look at to help?



There was an issue related to back pressure that you may have run into that has been fixed in the latest RSocket release 0.11.8 that you could try.

Also- depending on your code you could be using setting Long.MAX as your request n - this will basically disable back-pressure in reactor-core. Depending on your code you might need to use the reactor-core limitRate operator for instance.