[this post is available online at https://s.apache.org/c358 ]

by Von Gosling, member of the Apache RocketMQ Project Management Committee

Last year, I wrote a blog about how communities from a non-English-speaking 
country understand and use Apache way for open innovation. In that article, I 
mainly expressed the desire to be open as a developer, to be good at using 
mailing lists, listening to community voices and making decisions. In addition, 
project communities can also organize more programming activities like Google 
Summer of Code ("GSoC"; applications are now open for the 2019 program) to help 
developers learn how to become involved in the community-led development 
process as well as provide greater help and encouragement for developers to 
join the community. After that, I have been thinking about sharing some Apache 
RocketMQ community building and collaborative innovation stories through some 
real-life examples. It is my great honor to share some stories with community 
at the upcoming ASF anniversary celebration. IMO, The Apache Way has greatly 
helped Apache RocketMQ to grow its community since entering the Apache 
Incubator in 2016.

Apache RocketMQ was originally created and used as a distributed messaging 
engine for online e-commerce transaction processing. It could undertake 
billions, even trillions of  message transmissions in many companies’ 
production environments. RocketMQ has been proven to be suitable for 
high-throughput, low-latency messaging systems in the large-scale distributed 
scenarios. A standard OpenMessaging project on the Linux Foundation provides a 
common benchmarking platform[1] for distributed messaging systems in the cloud 
including Apache RocketMQ. Of course, as a widely used messaging engine, the 
functional level, RocketMQ provides both pull and push models, supporting 
scheduled message, ordered message, batch message, broadcast message, message 
filtering, dead-letter queue and so on, almost sustaining all classic event 
driven or streaming scenarios. Even so, there are still a few core features not 
included from an enterprise perspective. Last year, the RocketMQ community 
announced three attractive features: transactional message, message tracing, 
authentication and authorization. The transactional message implements the 
transaction consistency guarantee between the sender and the local business 
operation. This feature is a very valuable feature which was initiated and 
contributed by several individuals from the financial industry. While based on 
transactional messages, we could build a full-stack distributed transaction 
platform, which is suitable for long-running microservice. 

In the enterprise application for messaging, there has always been a troubling 
problem. Where did my message send to? How can I find message accumulation if 
the consumer has failed or not? That’s a very difficult task especially when we 
are providing cloud pub/sub service, because messaging is an asynchronous 
decoupling process, the natural upstream and downstream are not aware of each 
other. Fortunately, some guys from the China Mobile Research Institute found 
some of the pmc members at Apache RocketMQ Meetup and mentioned their troubles. 
So, we showed them the latest RIP[2]  plan from the community, which is a very 
challenging optimization and improvement for Apache RocketMQ intra code. Under 
the help of a Project Management Committee (PMC) member, RIP were proposed, 
discussed and accepted. After the necessary time planning, we started to 
design, coding and discuss, exchange code implementation details, which 
includes several meetups to gather together to discuss and review the code 
until the later online verification and released. More interesting, in the 
following review process, another cloud vendor from the community has joined. 
After simple video communication, the original implementation was optimized to 
be compatible with its implementation. Finally, in the community, we are happy 
to see that the new version has been verified in production by two cloud 
vendors. The ACL feature is also a process in which the PMC and the community 
continue to collaborate, and the final version of the RIP is finally published. 
Through the meetup we collected the requirements, through open discussion, 
coupled with the video communication using Zoom, the RocketMQ community 
completed the several important releases in the last year. At the same time, in 
order to better promote ecological flourishing, several projects residing under 
the Apache RocketMQ external repository were reorganized (80% above projects 
contributed by community during incubation). In addition to setting milestones, 
this time we added similar incubations and graduation mechanism further reduces 
the difficulty of community participation while better guarantee product 
quality. Today, several different language sdk projects that have graduated are 
from a large number of users in use and maintenance. The enthusiasm of the 
community completely surpasses thoughts. It also verifies that the future cloud 
architecture is language-independent, even serverless. Under this general 
trend, the community's guys actively participated in the RocketMQ 
multi-language ecological construction. RocketMQ now supports java, cpp, 
python, go, nodejs and other languages are planning and on the way. Even, the 
current CPP client can support up to 8 platforms, like CentOS, MacOS, Ubuntu 
and Windows.

Not only that, more and more community enthusiasts are also spontaneously 
self-organizing: they are also actively planning similar activities in the city 
station, but also need to give some attention and encouragement by PMCs. At the 
same time, this also provoked us to think about whether the Apache community 
should have a developer-oriented role like release manager, such as 
developer-relationship maintainer, project manager, to let more users 
understand, and become more involved in the product. The community development 
in recent years has also brought many new signs to the RocketMQ community. 
There are more and more active developers in the community. In roughly three 
months, nearly 2,000 emails were sent from the dev email list. Research has 
shown that 70% of top banks in China use Apache RocketMQ on the core business 
link, approximately 60% of Internet finance and insurance customers use 
RocketMQ in their production environments, and 75% of top 20 Internet companies 
in China widely use classic pub/sub scenarios.

Recently, the RocketMQ community has been discussing the development of the 
next-generation messaging platform. We hope it is a unified messaging engine 
with lightweight data processing platform, and welcome everyone to become 
involved and tell the PMC what features you are most looking forward to seeing 
in future versions of RocketMQ.

Many thanks to The Apache Software Foundation for its open and inclusive 
community culture that helps RocketMQ build a broader community. It will soon 
be 20th anniversary. I am pleased to represent the RocketMQ community in 
wishing the ASF a happy 20th anniversary, hoping for many more and continuing 
to thrive.


[1] https://github.com/openmessaging/openmessaging-benchmark
[2] https://github.com/apache/rocketmq/wiki/RocketMQ-Improvement-Proposal

# # #

Part of the "Success at Apache" series, Project Perspectives chronicles how 
projects and their communities have benefited from The Apache Way.

= = =

NOTE: you are receiving this message because you are subscribed to the 
[email protected] distribution list. To unsubscribe, send email from the 
recipient account to [email protected] with the word 
"Unsubscribe" in the subject line.

Reply via email to