This is an automated email from the ASF dual-hosted git repository.

xiangying pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new a25125d6855 [improve][pip] Implement getLastMessageIds API for Reader 
(#21052)
a25125d6855 is described below

commit a25125d685597edfba0cf8b92761e46ad43df276
Author: Xiangying Meng <[email protected]>
AuthorDate: Fri Sep 1 16:06:54 2023 +0800

    [improve][pip] Implement getLastMessageIds API for Reader (#21052)
---
 pip/pip-296.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/pip/pip-296.md b/pip/pip-296.md
new file mode 100644
index 00000000000..99a57e66624
--- /dev/null
+++ b/pip/pip-296.md
@@ -0,0 +1,93 @@
+# Background knowledge
+A consumer is a process that attaches to a topic via a subscription and then 
receives messages. The reader interface for Pulsar enables applications to 
manually manage cursors. More knowledge of the Reader and Consumer interface 
can be found in the [Pulsar Client 
doc](https://pulsar.apache.org/docs/next/concepts-clients/#reader).
+
+# Motivation
+
+Add the `getLastMessageIds` API for Reader.  This will help to increase the 
flexibility of reader usage.
+
+# Goals
+
+## In Scope
+
+Add the `getLastMessageIds` API for Reader.
+
+## Out of Scope
+
+None.
+
+
+# High Level Design
+
+Implement the `getLastMessageIds` method for Reader by internally invoking the 
Consumer interface.
+
+# Detailed Design
+
+## Design & Implementation Details
+```java
+    @Override
+    public List<TopicMessageId> getLastMessageIds() throws 
PulsarClientException {
+        return consumer.getLastMessageIds();
+    }
+
+    @Override
+    public CompletableFuture<List<TopicMessageId>> getLastMessageIdsAsync() {
+        return consumer.getLastMessageIdsAsync();
+    }
+```
+
+## Public-facing Changes
+
+
+
+### Public API
+```java
+    /**
+     * Get all the last message id of the topics the reader subscribed.
+     *
+     * @return the list of TopicMessageId instances of all the topics that the 
reader subscribed
+     * @throws PulsarClientException if failed to get last message id.
+     * @apiNote It's guaranteed that the owner topic of each TopicMessageId in 
the returned list is different from owner
+     *   topics of other TopicMessageId instances
+     */
+    List<TopicMessageId> getLastMessageIds() throws PulsarClientException;
+
+    /**
+     * The asynchronous version of {@link Reader#getLastMessageIds()}.
+     */
+    CompletableFuture<List<TopicMessageId>> getLastMessageIdsAsync();
+```
+### Binary protocol
+
+### Configuration
+
+### CLI
+
+### Metrics
+
+# Monitoring
+
+
+# Security Considerations
+
+
+# Backward & Forward Compatibility
+
+## Revert
+
+
+## Upgrade
+
+
+
+# Alternatives
+
+
+# General Notes
+
+# Links
+
+<!--
+Updated afterwards
+-->
+* Mailing List discussion thread:
+* Mailing List voting thread:

Reply via email to