-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve consumer message sequence and idempotence #29
Comments
Can you describe simply the solution you are working with to improve idempotence? |
@standardcore |
This feature will be given to the user to ensure. |
CAP does not implement idempotent for several reasons: The following are the receiving end
There are many reasons why the Consumer method fails. I don't know if the specific scene is blindly retrying or not retrying is an incorrect choice.
The scenario here is also possible. If the Consumer has been successfully executed at the beginning, but for some reason, such as the Broker recovery, and received the same message, the CAP will consider this a new after receiving the Broker message. The message will be executed again by the Consumer. Because it is a new message, the CAP cannot be idempotent at this time.
Since the table of the CAP message is deleted after 1 hour for the successfully consumed message, if the historical message cannot be idempotent. Historically, it means that if the broker has maintained or manually processed some messages for some reason.
Many event-driven frameworks require users to ensure idempotent operations, such as ENode, RocketMQ, etc... From an implementation point of view, CAP can do some less stringent idempotence, but strict idempotent cannot. |
In subscribe method, CAP needs to add these two features.
The text was updated successfully, but these errors were encountered: