nodece commented on PR #1301:
URL: 
https://github.com/apache/pulsar-client-go/pull/1301#issuecomment-2447427422

   @BewareMyPower 
   
   1. The 1st answer
   
   Your explanation is clear, I agree with you:
   
   > IMO, we should make batch index ACK enabled by default for both client 
side and server side. The current default behavior is really confusing.
   
   Default to batch index ACK is disabled. When disabled, the users must ack 
all batch messages by `AckID(id)`,  and then the client sends the ack request 
to the broker. 
   
   > Received message:  msg-0 9:0:0
   > Received message:  msg-1 9:0:0
   > Ack message 0 success
   > Received message:  msg-0 9:0:0
   
   You only ack the first message, the client doesn't send the ack request to 
the broker, so you still receive the first message after restart the consumer.
   
   I remember the Java client has the same behavior, if I am wrong, please let 
me know.
   
   2. The 2nd answer.
   
   > `ackIDCommon` is an abstraction for acknowledgment on a single message ID. 
When `AckWithResponse` is true, we cannot reuse this method because we should 
avoid sending N requests.
   
   You can refactor the `ackIDCommon`, because you ignore the ackTracer, so it 
is confusing. I hope we still use the ackTracer to track all(non-batch, batch, 
chunk) messages, and we can keep the same semantics with the `AckID`.
   
   You can also disscus this issue on the dev mailing list.


-- 
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