incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Huxing Zhang <hux...@apache.org>
Subject [PROPOSAL] Dubbo - proposal for Apache Incubation
Date Sat, 03 Feb 2018 11:44:40 GMT
Dear Apache Incubator Community,

Please accept the following proposal for presentation and discussion:
https://wiki.apache.org/incubator/DubboProposal

Dubbo is a high-performance, lightweight, Java based RPC framework.
Dubbo offers three key features, which includes interface based remote
call, fault tolerance & load balancing, and automatic service
registration & discovery.

Any feedback from the incubator community is much appreciated.

I've attached the proposal below.

Best Regards,
Huxing

= Dubbo Proposal =

== Abstract ==

Dubbo is a high-performance, lightweight, java based RPC framework
open-sourced by Alibaba. As in many RPC systems, Dubbo is based around
the idea of defining a service, specifying the methods that can be
called remotely with their parameters and return types. On the server
side, the server implements this interface and runs a Dubbo server to
handle client calls. On the client side, the client has a stub that
provides the same methods as the server.

== Proposal ==

Dubbo has a fairly huge community today, and is widely adopted by many
companies and organizations, but most of them are in China. We believe
running Dubbo in Apache Software Foundation can facilitate development
of a stronger and more diverse community.

Alibaba submits this proposal to donate Dubbo's source code and its
side projects to the Apache Software Foundation. The code is already
under the Apache License Version 2.0.  Dubbo source code and its side
projects are hosted on github right now:

 * Dubbo code base: https://github.com/alibaba/dubbo
 * Web site: https://github.com/dubbo/dubbo.github.io
 * Documentations: User
Guide(http://dubbo.io/books/dubbo-user-book-en), Development
Guide(http://dubbo.io/books/dubbo-dev-book-en), Admin
Manual(http://dubbo.io/books/dubbo-admin-book-en)
 * Other side projects hosted under dubbo group(https://github.com/dubbo)

== Background ==

Dubbo was developed at Alibaba in 2011 and has been widely used in
many production lines there since then. Dubbo offers three key
features, which include interface based remote call, fault tolerance &
load balancing, and automatic service registration & discovery. Since
Dubbo is open-sourced on github, it's been received up to 15k stars,
and has been forked for more than 10k times. Besides being widely
adopted inside Alibaba, Dubbo is also used in approximately 80% of
internet companies in China, including JingDong(http://www.jd.com),
DangDang(http://www.dangdang.com), Qunar(https://www.qunar.com),
NetEase Kaola(https://www.kaola.com), etc. In 2017, Dubbo has won the
TOP 10 most popular open source projects in China for 2 consecutive
years since 2016.

We'd like to share this outstanding framework at the Apache Software
Foundation, and start developing a wider community through the Apache
way. We believe more people and organizations can be benefit from it
by doing so.

== Rationale ==

Remote procedure call (RPC) is one of the cornerstones to build
distributed systems, especially useful in today's e-commercial
industry and cloud computing providers. Dubbo is the java-based RPC
implementation. By using Dubbo, developers can call the remote service
just like call a local method but without worrying about the details
for the remote interaction. We expect more interesting features and
use cases to emerge from the community ranging from microservices to
cloud computing, and many other areas.

== Current Status ==

=== Meritocracy ===

The intent of this proposal is to start building a diverse developer
and user community around Dubbo following the ASF meritocracy model.
Since Dubbo was open sourced, many companies in China adopted Dubbo to
build up their own contributing system, moreover, we received many
enhancements or issue reports from them at the same time. The codebase
is now mainly managed by the development team inside Alibaba who's
responsible for building internal distributed system too. Any
suggestion or issue is discussed on
https://github.com/alibaba/dubbo/issues and more casual talk happens
in gitter channel (https://gitter.im/alibaba/dubbo). We plan to invite
more people as committers if they contribute to this project.

=== Community ===

Dubbo is currently being developed by the development team inside
Alibaba who's responsible for building internal distributed system
too. Since it's open-sourced, Dubbo is widely adopted by many other
companies including CNUCC (China Nets Union Clearing Corporation),
ICBC (Industrial and Commercial Bank of China), China Life Insurance,
DiDi, Qunar, Dangdang, NetEase Kaola, Maoyan Movie, GOME, Haier, CSDC
(China Securities Depository and Clearing Corporation Limited),
AsiaInfo, and many more. We hope to grow the base of contributors by
inviting all those who offer contributions and excel through the use
of The Apache Way. Contributions from outside of Alibaba  are
constantly accepted by Dubbo project and its side projects.  Right
now, we make use of github as code hosting as well as both Google
Groups and gitter for community communication.

=== Core Developers ===

Dubbo is currently being developed by engineers from Alibaba,
Dangdang, Qunar and WeiDian. Ding Li, Huxing Zhang, Ian Luo, Jun Liu,
Liujie Qin, Mercy Ma, Von Gosling, William Liang are working for
Alibaba. Most of them are working in Alibaba middleware team, and some
of them are also the core members of internal RPC framework, HSF (high
speed service framework). Von Gosling is the co-creator of Apache
RocketMQ, while Huxing Zhang is one of Apache Tomcat PMC members.
Besides, the Dubbo core developers also includes Xin Wang from
WeiDian, Liang Zhang from DangDang, Zhaohui Yu from Qunar. All of them
are in charge of building and maintaining distributed system in their
organizations, and have great passion in contributing back into Dubbo
project.

=== Aligment ===

The ASF is the natural choice to host the Dubbo project as its goal of
encouraging community-driven open source projects fits with our vision
for Dubbo. The ASF is also the home to many other projects with which
we are familiar with and hope to integrate better with Dubbo including
Apache Thrift, Apache Zookeeper, etc. We believe that there will be
mutual benefit by close proximity to these and other projects.

== Known Risks ==

=== Orphaned products ===

The core developers currently work full-time on RPC area for Alibaba.
Dubbo is widely adopted by many companies and individuals. There's no
realistic chance of it becoming orphaned.

=== Inexperience with Open Source ===

The core developers are all active contributors, users and followers
of open source. They are all already committers and contributors to
Dubbo project, and have gained good experience in running open-source
project in Github and interacting with the community. Moreover, Von
Gosling and Huxing Zhang from the initial committer, both are working
on Apache projects (RocketMQ and Tomcat respectively), will guide
others to practice the Apache Way together along with other incubator
mentors.

=== Homogenous Developers ===

The current set of developers work across a variety of organizations
including Alibaba, DangDang, Qunar, and WeiDian. Furthermore, many
other companies forked Dubbo and continued to enhance in their own
private repositories. We plan to encourage them to contribute and
invite them as contributors to work on one common code base.

=== Reliance on Salaried Developers ===

Currently, most of core developers are paid to work on Dubbo project
by Alibaba. We look forward to attracting more people outside Alibaba
to join this project, either payed engineers working on RPC area, or
individual volunteers, as long as they have enthusiasm for the Dubbo
project.

=== Relationships with Other Apache Products ===

Dubbo integrates Apache Thrift as one of RPC protocols it supports,
and Apache Zookeeper as one of service registration/discovery
machanisms. We look forward to collaborating with those communities
and any others which use RPC.

=== A Excessive Fascination with the Apache Brand ===

While we respect the reputation of the Apache brand and have no doubt
that it will attract new contributors and users, our interest is
primarily to give Dubbo a solid home as an open source project
following an established development model. More reasons are provided
in the Rationale and Alignment sections.

== Documentation ==

A complete set of Dubbo documentations is provided on dubbo.io in both
English and Simplified Chinese.

 * Dubbo user guide:
http://dubbo.io/books/dubbo-user-book-en(English),
http://dubbo.io/books/dubbo-user-book(Chinese)
 * Dubbo development guide:
http://dubbo.io/books/dubbo-dev-book-en(English),
http://dubbo.io/books/dubbo-dev-book(Chinese)
 * Dubbo admin manual:
http://dubbo.io/books/dubbo-admin-book-en(English),
http://dubbo.io/books/dubbo-admin-book(Chinese)

== Initial Source ==

Dubbo was initially developed within Alibaba, and then was
open-sourced with The Apache License 2.0 under Alibaba Group on Github
in 2011. Besides the core code base, Dubbo also hosts its side
projects on github but in a dedicated group instead of Alibaba.
Specifically, the initial source includes:

 * Dubbo code base: https://github.com/alibaba/dubbo
 * Spring Boot Support: https://github.com/dubbo/dubbo-spring-boot-project
 * Dubbo Admin Console: https://github.com/dubbo/dubbo-ops
 * Json RPC extension: https://github.com/dubbo/dubbo-rpc-jsonrpc
 * Home Page: https://github.com/dubbo/dubbo.github.io
 * Dubbo Documentation:
    * User guide: https://github.com/dubbo/dubbo-user-book-en
    * Developer guide: https://github.com/dubbo/dubbo-dev-book-en
    * Admin guide: https://github.com/dubbo/dubbo-admin-book-en
 * Dubbo Documentation (Chinese)
    * User guide: https://github.com/dubbo/dubbo-user-book
    * Developer guide: https://github.com/dubbo/dubbo-dev-book
    * Admin guide: https://github.com/dubbo/dubbo-admin-book
 * Samples/Demo:
    * https://github.com/dubbo/dubbo-feature-test
    * https://github.com/dubbo/dubbo-docker-sample
    * https://github.com/dubbo/dubbo-http-demo
    * https://github.com/dubbo/dubbo-ws-demo


== External Dependencies ==

As all dependencies are managed using Apache Maven, none of the
external libraries need to be packaged in a source distribution. The
dependencies all have Apache compatible licenses. These include BSD,
CDDL, CPL, MPL and MIT licensed dependencies. There are only 3
transitive dependencies(javassist, netty, and spring-context), and all
the other dependencies are optional, which are not included in a Dubbo
release.

Dependency          License                     Optional?
javassist           Apache License 2.0/MPL 1.1  false
netty               Apache License 2.0          false
spring-context      Apache License 2.0          false
httpclient          Apache License 2.0          true
zookeeper           Apache License 2.0          true
zkclient            Apache License 2.0          true
curator-framework   Apache License 2.0          true
cxf                 Apache License 2.0          true
libthrift           Apache License 2.0          true
commons-logging     Apache License 2.0          true
commons-lang        Apache License 2.0          true
mina                Apache License 2.0          true
fastjson            Apache License 2.0          true
xmemcached          Apache License 2.0          true
hessian             Apache License 1.1          true
tomcat              Apache License 2.0          true
jetty               Apache License 2.0/EPL 1.0  true
validation-api      Apache License 2.0          true
hibernate-validator Apache License 2.0          true
cache-api           Apache License 2.0          true
log4j               Apache License 2.0          true
easymock            Apache License 2.0          true
cglib-nodep         Apache License 2.0          true
resteasy            Apache License 2.0          true
fst                 Apache License 2.0          true
slf4j-api           MIT                         true
jmockit             MIT                         true
jedis               MIT                         true
grizzly             CDDL 1.1                    true
servlet-api         CDDL 1.1                    true
javax.el            CDDL 1.1                    true
logback-classic     EPL 1.0                     true
junit               EPL 1.0                     true
kryo                BSD 3-clause                true


== Required Resources ==

=== Mailing lists ===

 * dubbo-private (PMC discussion)
 * dubbo-dev (developer discussion)
 * dubbo-user (user discussion)
 * dubbo-commits (SCM commits)
 * dubbo-issues (JIRA issue feed)

=== Subversion Directory ===

Instead of subversion, Dubbo prefers to git as source control
management system: git://git.apache.org/dubbo

=== Issue Tracking ===

JIRA Dubbo (Dubbo)

=== Other Resources ===

The existing source code already has unit tests so we will make use of
existing Apache continuous testing infrastructure. The resulting load
should not be very large.

== Initial Committers ==

(In alphabetical order)

 * Ding Li (oldratlee at gmail dot com)
 * Huxing Zhang (huxing at apache dot org)
 * Ian Luo (ian.luo at gmail dot com)
 * Jean-Frederic Clere (jfclere at apache dot org)
 * Jun Liu (ken.lj.hz at gmail dot com)
 * John D. Ament (johndament at apache dot org)
 * Justin McLean  (jmclean at apache dot org)
 * Liang Zhang (terrymanu at 163 dot com)
 * Liujie Qin (qinliujieyangliu at gmail dot com)
 * Mark Thomas (markt at apache dot org)
 * Mercy Ma (mercyblitz at gmail dot com)
 * Von Gosling (vongosling at apache dot org)
 * William Liang (liangfei0201 at gmail dot com)
 * Xin Wang (ovepoem at hotmail dot com)
 * Zhaohui Yu (yuyijq at gmail dot com)

== Affiliations ==

(In alphabetical order)

 * Alibaba: Ding Li, Huxing Zhang, Ian Luo, Jun Liu, Liujie Qin, Mercy
Ma, Von Gosling, William Liang
 * Class Software: Justin McLean
 * DangDang: Liang Zhang
 * Pivotal: Mark Thomas
 * Qunar: Zhaohui Yu
 * Redhat: Jean-Frederic Clere
 * Sparta Systems: John D. Ament
 * WeiDian: Xin Wang

== Additional Interested Contributors ==

(In alphabetical order)

 * Hanson Huang (hanson19921129 at gmail dot com)
 * Jerrick Zhu (diecui1202 at gmail dot com)
 * Peng Wei (weipeng2k at gmail dot com)
 * Yuneng Xie (xieyuneng at gmail dot com)
 * Zhixuan Cheng (hengyunabc at gmail dot com)

== Sponsors ==

=== Champion ===

 * Justin McLean  (jmclean at apache dot org)

=== Nominated Mentors ===

 * Justin McLean  (jmclean at apache dot org)
 * John D. Ament (johndament at apache dot org)
 * Jean-Frederic Clere (jfclere at apache dot org)
 * Mark Thomas (markt at apache dot org)

==== Informal Mentors ====

 * Huxing Zhang (huxing at apache dot org)
 * Von Gosling (vongosling at apache dot org)


=== Sponsoring Entity ===

We are requesting the Incubator to sponsor this project.

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message