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]

Reply via email to