https://github.com/apache/pulsar-client-go/pull/1340
In this PR, I fixed the inconsistency in the Go client regarding the behavior of `HasNext, Next, and receive` after `seek`. However, there's a point of contention due to a breaking change. Refer to comment: https://github.com/apache/pulsar-client-go/pull/1340#discussion_r1978554860 Currently, the Go client doesn't consider StartMessageIDInclusive for seek. The current behavior is: ``` consumer.seek(msgid-5) consumer.receive() // will receives from msgid-5 ``` After this PR, user need to set StartMessageIDInclusive=true to maintain the original behavior (which is consistent with the current Java client implementation; you can refer to the test: https://github.com/apache/pulsar/blob/a1f3322ed358ab6841f0d3e43f2afcc54788b887/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/SubscriptionSeekTest.java#L142-L165). In the Java client, StartMessageIDInclusive does affect seek. Perhaps the name of this configuration wasn't ideal initially, but there is a comment in the Java client: https://github.com/apache/pulsar/blob/f199e8805f517373dbcc0f0c4a132218ecc24f0a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/ConsumerBuilder.java#L699 Regardless, it changes the existing behavior of the Go client but aligns it with the Java client. I hope the PR gets merged. I've updated the documentation and will add a label to this PR so it can be included in the release notes for the next release to inform users. I would like to hear your suggestions. Thanks, Baodi Shi