<div>The fundamental paradox of per-connection flow control is that it holds up the stop sign just when progress becomes possible. &nbsp;It is backwards and unhelpful. &nbsp;Consider:</div><div><br></div><div>1. A client is publishing 1.5K/sec to each of four exchanges, each of which has a queue.</div><div>2. There are no consumers. &nbsp;Therefore the queue is growing.</div><div>3. RMQ does not stop this. &nbsp;"Flow control" does not trigger.</div><div>4. The consumers appear to begin to tear down the backlog.</div><div>5. RMQ per-connection flow control suddenly decides that now there are some consumers, now it has a reason to throttle the sender.</div><div>6. If the consumers had not shown up, the producer would not have been blocked.</div><div><br></div><div>Therefore, it is only when the backlog can go DOWN that the broker decides to throttle the sender. &nbsp;Not when the backlog was GROWING, but when it could be SHRINKING, that's when RMQ decides to stop accepting.</div><div><br></div><div>This is not acceptable.</div>