1559924775 opened a new issue #13860:
URL: https://github.com/apache/pulsar/issues/13860


   <!---
   Instructions for creating a PIP using this issue template:
   
    1. The author(s) of the proposal will create a GitHub issue ticket using 
this template.
       (Optionally, it can be helpful to send a note discussing the proposal to
       [email protected] mailing list before submitting this GitHub issue. 
This discussion can
       help developers gauge interest in the proposed changes before 
formalizing the proposal.)
    2. The author(s) will send a note to the [email protected] mailing list
       to start the discussion, using subject prefix `[PIP] xxx`. To determine 
the appropriate PIP
       number `xxx`, inspect the mailing list 
(https://lists.apache.org/[email protected])
       for the most recent PIP. Add 1 to that PIP's number to get your PIP's 
number.
    3. Based on the discussion and feedback, some changes might be applied by
       the author(s) to the text of the proposal.
    4. Once some consensus is reached, there will be a vote to formally approve
       the proposal. The vote will be held on the [email protected] 
mailing list. Everyone
       is welcome to vote on the proposal, though it will considered to be 
binding
       only the vote of PMC members. It will be required to have a lazy 
majority of
       at least 3 binding +1s votes. The vote should stay open for at least 48 
hours.
    5. When the vote is closed, if the outcome is positive, the state of the
       proposal is updated and the Pull Requests associated with this proposal 
can
       start to get merged into the master branch.
   
   -->
   
   ## Motivation
   
   How to implement exactly once? Pulsar provides an implementation based on 
sequenceid, which requires users to maintain the mapping relationship between 
sequenceid and MSG. This requires development costs for users。
   
   ## Goal
   
   User data often has some characteristics, such as time, location, etc. we 
want to provide a way to convert the mapping relationship between maintenance 
sequenceid and MSG into the mapping relationship between data characteristics 
and MSG, so as to reduce user development costs.
   
   
   ## API Changes
   
   add intgerface Progress // represents the progress of the data
   add class ProgressInfo // bind sequenceid and data progress
   add class ProgressManager // manage data publish progress
   add method public CompletableFuture<MessageId> sendAsync(T message, Progress 
progress) in interface Producer
   add class ProgressHashPartitionMessageRouterImpl // ensure that the same 
data will be routed to the same partition
   
   ## Implementation
   
   #13859
   
   
   ## Reject Alternatives
   
   If there are alternatives that were already considered by the authors or,
   after the discussion, by the community, and were rejected, please list them
   here along with the reason why they were rejected.
   


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