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]
