Skip to content
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

[Feature] Support recalling of delay message #8974

Open
imzs opened this issue Nov 22, 2024 · 0 comments
Open

[Feature] Support recalling of delay message #8974

imzs opened this issue Nov 22, 2024 · 0 comments

Comments

@imzs
Copy link
Contributor

imzs commented Nov 22, 2024

Is Your Feature Request Related to a Problem?

.

Describe the Solution You'd Like

As the timer wheel implementation of delay message, we've reserved a cancellation ability: recalling scheduled messages by sending a corresponding delete message. However, we have not exposed an API to the upper layer. Some developers may construct and send a special message to achieve this, but this is not a friendly and sustainable solution because:

  • There is no clear API semantics.
  • It depends on internal implementation details and may become invalid due to system updates.
  • Sending and recalling are probably not in the same context, but the required information needs to be saved and depends on the details at the time of sending.
  • Grpc is not supported.

Therefore, the first step is to provide a user-friendly API to implement this feature.

  1. A new rpc request and processor.
  2. Client side API definition: recallMessage(topic, handle), recall handle from sending result is a bit like ReceiptHandle, containing information such as ID, broker, and timestamp.
  3. Still based on time wheel, only support delay message for now, and perform limited parameter validation in the internal implementation, that is
    • can not accurately determine whether the message truly exists
    • recall may fail when it's too close to the delivery time
  4. Regard the recall operation as a PUB operation for authorization.
  5. Support Remoting and Grpc protocol, proxy and proxy-less mode.

Describe Alternatives You've Considered

.

Additional Context

.

imzs added a commit to imzs/rocketmq that referenced this issue Nov 22, 2024
imzs added a commit to imzs/rocketmq that referenced this issue Nov 22, 2024
imzs added a commit to imzs/rocketmq that referenced this issue Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant