I am interested in working on this issue (
https://issues.apache.org/jira/browse/ROCKETMQ-124) as part of GSOC-18. I
have a few questions for the same. I am not sure if this discussion needs
to be on the JIRA issue or here. Feel free to correct me if this is the
wrong platform. Also while I have worked with distributed pub-sub systems I
am still fairly new to Rocket-MQ so maybe my understanding of it is
incorrect. I apologise if that is the case and would be happy to stand
Following are my questions:
1. What defines a redundant message?
The constructor that I see for a message is as follows:
Message(String topic, String tags, String keys, int flag, byte body,
Possible candidates to me are topic, tags (can there be multiple tags?
I could not find an example for this. If yes how are they separated?), keys
(Similar question to above.) and of course the body. Is there something
that I have missed in this? Is there something that we do not need to
2. Is their a timeline on the redundant messages? What I mean by this is
that is there a time limit after which a message with similar content is
allowed. From what I gather there was no such thing mentioned. This would
mean storing all the messages. Depending on the requirements this may or
may not be the best solution. It might be desirable that no duplicates are
needed within a certain time window (sliding). This allows ignoring of
duplicate messages that were generated very close to each other (or in the
window indicated). Depending on this requirement implementation may become
a little bit more involved.
For now, these are the only questions. I have ideas that need review about
possible implementations but I will mention them once the specifications
are clear to me. As an end question, I would at some point like to post
design ideas to this problem privately to get it reviewed by the
development community but not make it publicly available so that it cannot
be plagiarised. What platform/method can I use to do that? Or is submitting
a draft to the Google platform the only possible way to accomplish this?
Thanks a lot for reading this through and looking forward to your inputs.