Nice to see this proposal of yours, but it seems a bit like what
rocketmq-spring[1] does, so can you elaborate on the difference between QSF
and rocketmq-spring?

[1]https://github.com/apache/rocketmq-spring

yukon <yu...@apache.org> 于2022年3月16日周三 20:23写道:

> Could you please provide some demos to show how we use
> QSFProducer/Consumer?
>
> On Wed, Mar 16, 2022 at 6:49 PM Jason.Chen <chenhua...@foxmail.com> wrote:
>
> > I am sorry that the RIP mail format is incorrect, and i write a
> > well-formed google doc version here:
> >
> >
> >
> https://docs.google.com/document/d/10wSe24TAls7J9y0Ql4MYo73FX8g1aX9guoxBxzQhJgg
> >
> >
> >
> >
> >
> >
> > RIP 35 queue service framework(QSF)
> >
> > Status
> >
> > ●&nbsp;         Current State: Proposed
> >
> > ●&nbsp;         Authors: booom( booom (jason) · GitHub)
> >
> > ●&nbsp;         Shepherds: yukon( zhouxinyu (yukon) · GitHub)
> >
> > ●&nbsp;         Mailing List discussion: dev@rocketmq.apache.org
> >
> > ●&nbsp;         Pull Request:
> >
> > ●&nbsp;         Released:&nbsp;
> >
> > Background &amp; Motivation
> >
> > What do we need to do
> >
> > ●&nbsp;         Will we add a new module? Yes.
> >
> > ●&nbsp;         Will we add new APIs? No.
> >
> > ●&nbsp;         Will we add new feature? Yes.
> >
> > Why should we do that
> >
> > ●&nbsp;         Are there any problems of our current project?
> >
> > The current mq client API is intrusive, to send message or consume
> > message, we should code to manage the mq infrastructure, and mixed it up
> > with our business logic codes.
> >
> > ●&nbsp;         What can we benefit proposed changes?
> >
> > 1.      Encapsulate mq client API to support method invoking style usage.
> >
> > 2.      The encapsulation is easily extensible, to support
> > idempotence/eventually consistent/ fluid control extensions and so on.
> >
> > 3.      Isolate the mq client manage code and the business logic code, to
> > help mq users improve their systems’ maintainability.
> >
> > Goals
> >
> > ●&nbsp;         What problem is this proposal designed to solve?
> >
> > Unobtrusive mq client usage, and easily extensible to support
> > idempotence/eventually consistent/ fluid control extensions and so on.
> >
> > ●&nbsp;         To what degree should we solve the problem?
> >
> > 100%.
> >
> > Non-Goals
> >
> > ●&nbsp;         What problem is this proposal NOT designed to solve?
> >
> > 1.      Add new features to classics mq client.
> >
> > 2.      Affect compatibility.
> >
> > ●&nbsp;         Are there any limits of this proposal?
> >
> > Only QSF(queue service framework) users will benefit.
> >
> > Changes
> >
> > Architecture
> >
> > To simplify a process, we need to consider what information is essential
> > and must be provided by users to execute this process? How to properly
> > organize this information so that it is most user-friendly?&nbsp;
> >
> >
> > Along this thinking path, we have extracted the necessary parameters for
> > mq calls and organized them into the java annotations @QSFConsumer and
> > @QSFProvider. After that, through the extension support of spring
> container
> > in each stage of bean life cycle, we can process @QSFConsumer
> @QSFProvider
> > annotation in BeanPostProcessor, extract method invocation information to
> > method invocation information object MethodInvokeInfo and send it out,
> and
> > locate it through MethodInvokeInfo at the message receiving endpoint. The
> > bean where the call is made, the method where it is located, the
> parameters
> > used, and then the method is called by reflection.
> >
> >
> >
> >
> >
> > Interface Design/Change
> >
> > ●&nbsp;         Method signature changes
> >
> > ○&nbsp;         &nbsp; &nbsp; method name
> >
> > ○&nbsp;         &nbsp; &nbsp; parameter list
> >
> > ○&nbsp;         &nbsp; &nbsp; return value
> >
> > Nothing.
> >
> > ●&nbsp;         Method behavior changes
> >
> > Nothing.
> >
> > ●&nbsp;         CLI command changes
> >
> > Nothing.
> >
> > ●&nbsp;         Log format or content changes
> >
> > Nothing.
> >
> > &nbsp;Compatibility, Deprecation, and Migration Plan
> >
> > ●&nbsp;         Are backward and forward compatibility taken into
> > consideration?
> >
> > Yes.
> >
> > ●&nbsp;         Are there deprecated APIs?
> >
> > Nothing.
> >
> > ●&nbsp;         How do we do migration?
> >
> > Upgrade normally, no additional migration required.
> >
> > Implementation Outline
> >
> > We will implement the proposed changes by 1 phase. (QSF is implemented
> and
> > works well in our project)
> >
> > Phase 1
> >
> >
> > Complete the QSF mq client encapsulation.
> >
> >
> >
> > Complete the QSF idempotency support
> >
> >
> > Rejected Alternatives
> >
> > There are no other alternatives.
> >
> >
> >
> >
> >
> >
> >
> > ------------------&nbsp;原始邮件&nbsp;------------------
> > 发件人:
> >                                                   "Jason.Chen"
> >                                                                       <
> > chenhua...@foxmail.com&gt;;
> > 发送时间:&nbsp;2022年3月16日(星期三) 中午12:55
> > 收件人:&nbsp;"dev"<dev@rocketmq.apache.org&gt;;
> >
> > 主题:&nbsp;[DISCUSS] RIP-35 queue service framework(QSF)
> >
> >
> >
> >
> >
> >
> >
> > Status
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Current State: Proposed
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Authors: booom( booom (jason) · GitHub)
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Shepherds: yukon( zhouxinyu (yukon) · GitHub)
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Mailing List discussion:
> > dev@rocketmq.apache.org
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Pull Request:
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Released: <relased_version&gt;
> >
> > Background &amp; Motivation
> >
> > What do we need to do
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Will we add a new module? Yes.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Will we add new APIs? No.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Will we add new feature? Yes.
> >
> > Why should we do that
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Are there any problems of our current project?
> >
> > The current mq client API is intrusive, to send message or consume
> > message, we should code to manage the mq infrastructure, and mixed it up
> > with our business logic codes.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; What can we benefit proposed changes?
> >
> > 1.&nbsp;&nbsp; &nbsp; Encapsulate mq client API to support method
> invoking
> > style usage.
> >
> > 2.&nbsp;&nbsp; &nbsp; The encapsulation is easily extensible, to support
> > idempotence/eventually consistent/ fluid control extensions and so on.
> >
> > 3.&nbsp;&nbsp; &nbsp; Isolate the mq client manage code and the business
> > logic code, to help mq users improve their systems’ maintainability.
> >
> > &nbsp;
> >
> > Goals
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; What problem is this proposal designed to
> solve?
> >
> > Unobtrusive mq client usage, and easily extensible to support
> > idempotence/eventually consistent/ fluid control extensions and so on.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; To what degree should we solve the problem?
> >
> > 100%.
> >
> > Non-Goals
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; What problem is this proposal NOT designed to
> > solve?
> >
> > 1.&nbsp;&nbsp; &nbsp; Add new features to classics mq client.
> >
> > 2.&nbsp;&nbsp; &nbsp; Affect compatibility.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Are there any limits of this proposal?
> >
> > Only QSF(queue service framework) users will benefit.
> >
> > Changes
> >
> > Architecture
> >
> > Interface Design/Change
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Method signature changes
> >
> > ○&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; method name
> >
> > ○&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; parameter list
> >
> > ○&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; return value
> >
> > Nothing.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Method behavior changes
> >
> > Nothing.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; CLI command changes
> >
> > Nothing.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Log format or content changes
> >
> > Nothing.
> >
> > &nbsp;Compatibility, Deprecation, and Migration Plan
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Are backward and forward compatibility taken
> > into consideration?
> >
> > Yes.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; Are there deprecated APIs?
> >
> > Nothing.
> >
> > ●&nbsp;&nbsp;&nbsp; &nbsp; How do we do migration?
> >
> > Upgrade normally, no additional migration required.
> >
> > Implementation Outline
> >
> > We will implement the proposed changes by 1 phase. (QSF is implemented
> and
> > works well in our project)
> >
> > Phase 1
> >
> > Complete      the QSF mq client encapsulation.
> >
> > Complete      the QSF idempotency support
> >
> > Rejected Alternatives
> >
> > There are no other alternatives.
>

Reply via email to