rdhabalia commented on PR #23398: URL: https://github.com/apache/pulsar/pull/23398#issuecomment-2448363480
I have few questions: 1. what happens when broker sends `Throttle` Command to client? - how does it impact client application? what happens when client-app calls `producer.sendAsync()` -> if client lib stops sending messages then client will eventually gets queue-full-execption? - Or client will eventually get time-out exceptions for all the messages sitting into the queue>? I guess that could be the likely behavior and in that case, does it make sense to send publish-error-code instead `throttle-command` from broker. So, broker can send `ERROR_CODE.THROTTLING` and client can just handle it with same behavior as it has received `throttle-command` so, we might not need a separate command here and it can be achievable with an error-code. 2. I think client doesn't have to send ACK for Throttle command back to broker as it's not useful to broker and it seems it's one side notification only. 3. How does client perform backoff? PIP says 1 second but server could have rate-limiting with different unit as well? and it doesn't make sense to configure on the client side? are we also considering exponential backoff at client (starting with 10ms) and let client retry and see if producer can publish more messages or broker will again send throttle cmd/error. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
