Hi folks,

Finally we managed to ramp down version 2.7.0 development, and hopefully we
can start the vote in the early of the next week. But the main purpose of
this email is not a release announcement. Instead, since we now have
bandwidth, let's consider and discuss what we should focus out from many
stuff we want to do. For example, we may focus more on issue and pull
request on GitHub, or we may plan 2.7 minor releases immediately after we
release 2.7.0. But today I'd like to bring up one longer term plan which
I'm now caring most, that is, how we define what version 3.0 is? and when
can we get start on it? In my opinion, we need to start it right from this
moment.

I recalled Liujie Qin (@liujieqin) initialed the discussion on the same
topic [1] in July this year. I summarize his points here if you are too
impatient to read through the contents of his email :p:

1. Need to enhance the current extension mechanism
2. Need to enhance the code base for better maintenance
3. Need to support async
4. Need to decouple registry server and config server
5. Need to support Java8 and above so that we can use advanced features in
Dubbo's core

I agree with most of his points in this good proposal.

Here I'd like to initial a discussion on how we define Dubbo 3.0, or in the
other word, how do the community expect from Dubbo 3.0. In my opinion, I
think we need to answer the following questions in this major release:

- Today the boundary between messaging and remoting call gets blur. We may
need to consider to support streaming at the protocol level.
- Reative programming and its fundamental FP start to get adopted. We
should consider to support it.
- Dubbo should be redesigned to support async better, and treats async as
the first class citizen. We do support async feature in 2.7.0 release but
it is not so perfect.
- Micro-services has been widely adopted. How Dubbo works seamlessly with
micro-services becomes a question mark. We need to look into the inter-op
between Dubbo and micro-services's registry server/config server. The
support on separating registry server and config server in 2.7.0 release is
a good start, but there are still lots of further works remaining with no
doubt.
- Once we conquer seamless micro-services support, we still need to take
one step further to think about K8S integration. After all, K8S and service
mesh built above it are now considered the best way for micro-services
deployment.
- How we define mini-dubbo, or phrase in another way, what the minimal
feature set we should define for Dubbo framework. The reason behind this
is, it is very helpful for developing more language supports from the
community. This also means, we need to modularize Dubbo further, to make it
a reference implementation for other languages.

In short, I suggest we need to focus on streaming protocol, Rx/FP, native
async, micro-services support, refactor/modularize areas. Of course, there
are more I don't mention in this email, for examples: how we make Dubbo
more resilient? how we support HTTP/2? and more.

Pls. let me know your opinion on what I and Liujie proposed, and share your
thought on what kind of features really matter to you.

Thanks,
-Ian.


1. Proposal for Dubbo 3.0 from [email protected] on [email protected]

Reply via email to