Hello, Pulsar community: Now client consumer `void redeliverUnacknowledgedMessages();` is an async interface, but it doesn't have the return value. only `writeAndFlush` the redeliver command then finishes.
`ConsumerImpl`: https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java#L1907-L1909 `MultiTopicsConsumerImpl`: https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsConsumerImpl.java#L667-L677 in the shared subType, I think it doesn't need the response of the `void redeliverUnacknowledgedMessages()`, and naming the `redeliverUnacknowledgedMessages` is ok. but in failover and exclusive subType, if we don't get the response, the user will receive the message from the `incomingQueue` then the order of the message will be broken. If the `redeliverUnacknowledgedMessages` timeout, we should try again. but `redeliverUnacknowledgedMessages` doesn't throw any exception or retry. and the `redeliverUnacknowledgedMessages` name is not accurate for failover and exclusive subType. it is named `rewind` is more suitable. So I suggest `redeliverUnacknowledgedMessages` be deprecated under failover and exclusive subType and add a new similar async and sync method called `rewind` for failover and exclusive subType. Please leave your comments or suggestions, thanks! Thanks, bo