Hi Incubator

I am Ming Wen, we have open-sourced a microservices API gateway called
APISIX (https://github.com/iresty/apisix), which delivering the ultimate
performance, security, open source and scalable platform for APIs and
microservices.

To better build up the whole ecosystem, we decide to donate APISIX project
to Apache Software Foundation. Therefore, we’d like to propose our project
to go through the incubation process.

we have already invited Willem Ning Jiang as Champion, Justin Mclean as
mentor, and welcome other experienced IPMC members to mentor this project.

Attached is our incubation proposal for open discussion, and I added this
proposal to list (
https://cwiki.apache.org/confluence/display/INCUBATOR/APISIXProposal).
Thank you.

Best,
Ming Wen

------
= APISIX Proposal =

== Abstract ==

APISIX is a cloud-native microservices API gateway, delivering the ultimate
performance, security,
open source and scalable platform for all your APIs and microservices.

APISIX is based on OpenResty and etcd, and has dynamic routing and plug-in
hot loading,
 which is especially suitable for API management under micro-service system.

== Proposal ==

The goal of this proposal is to bring the existing APISIX
<https://github.com/iresty/apisix> codebase and existing developers and
community
into the Apache Software Foundation (ASF) in order to build a global,
diverse and self-governed open source community in API gateway field.

Zhiliu is submitting this proposal to donate the APISIX sources code and
associated artifacts
(documentation, web site content, wiki, etc.) to the Apache Software
Foundation Incubator under the Apache License, Version 2.0.

These artifacts are currently available on GitHub at
https://github.com/iresty/apisix and include:
    - APISIX: The Cloud-Native Microservices API gateway.
    - APISIX-dashboard: The dashboard for APISIX API gateway.

== Background ==

Mircro-service and Cloud Native architecture are becoming more and more
popular,
traditional monolithic applications are being replaced by microservices.
This also brings more challenges for API gateways, not only handling
north-south traffic,
but also handling east-west traffic between microservices,
and need to ensure high concurrency and very low latency at the same time.

APISIX was open sourced on Github in in June 2019.
At first, APISIX needs to interact directly with etcd to modify the
configuration of routes and plugins.
After we opened on the GitHub, the community gives the feedbacks about high
level API and built-in dashboard.
So in 0.6 version, APISIX provided REST admin API and dashboard to control
the API gateway.
Since then more and more contributors have joined in, and more plugins and
features provided.

== Rationale ==

APISIX acts as an entry point for business traffic and plays an important
role in the current system.
 Making traffic more secure and faster to process is the ultimate goal of
APISIX.

APISIX includes these primary parts:
    - Provide the core of the API gateway, including various processing of
requests and responses, dynamic upstream and dynamic SSL certificates,
    upstream active and passive health checks, etc. The core does not bind
APISIX, other projects can be used directly.
    - Provide the plug-in hot plugging mechanism based on the core, to
support gRPC transcoding,
     identity authentication, rate limiting, OpenTracing etc. And provide a
plugin development library,
      users can easily write their own plugins.
    - Provide the admin API and dashboard to operate the API gateway,
    and also support updating with the yaml configuration file, which is
friendly for Kubernetes.

There is a strong need for an open, easy-to-use microservice API gateway to
help developers
 reduce duplication of code development and better manage APIs.
We believe that by moving to Apache it will help us work in a more global
and open way.
Under Apache’s strong governance and existing processes, hope is also to
make APISIX more reliable and encourage more developers to participate,
 as is crucial for API gateway.

== Current Status ==

=== Meritocracy ===

APISIX was created in April 2019 and opened on github on June 6, 2019.
The project now has contributors and users from a dozen companies;
we have set up the PMC Team and Committer Team. New contributors are guided
and reviewed by existed PMC members.
When they are ready, PMC will start a vote to promote him/her to become a
member of PMC or Committer Team,
see the votes for Committer:
https://github.com/iresty/apisix/issues?utf8=%E2%9C%93&q=label%3Avote.
Contributions are always welcomed and highly valued.
A lot of energy is allocated to ensure help to all wishing to contribute.

=== Community ===

APISIX has been building an active community since its open source, and
hosted meetup in 5 different cities in China.
Currently, the community includes over 22 contributors, and we already have
a user group of more than 500 people.

APISIX’s contributors, who can provide employer information, are from
iresty.com, meizu.com, weibo.com, ke.com, fansup.mobi,
which also provide many important feedbacks from their actual scenarios.

We hope to grow the base of contributors by inviting all those who offer
contributions through The Apache Way.
Right now, we make use of github as code hosting as well as gitter for
community communication.

APISIX will seek more developers and user communities during incubation.

=== Core Developers ===

The core developers, including experienced open source developers and team
leaders, have formed a group full of diversity.
    - Committer Team members:
https://github.com/iresty/Organization/blob/master/README.md#committer-team

== Known Risks ==

=== Orphaned products ===

The contributors and community cooperation brings the project from a small
concept into a real microservices API gateway,
and APISIX is widely adopted in China by some companies and organizations
<https://github.com/iresty/apisix/issues/487>.
The core developers of APISIX team already work full time on this project.
There is very little risk of APISIX getting orphaned as at least one large
company (ke.com) is widely using it in their production, handling more than
100 million user requests per day.

APISIX has four major releases, 22 contributors, been forked nearly 150
times,
and received 380 pull requests from contributors, which further
demonstrates APISIX as a very active project.
We also plan to extend and diversify this community further through Apache.

Thus, it is very unlikely that APISIX becomes orphaned.

=== Inexperience with Open Source ===

The members of PMC are the founders of the OpenResty community, a
nd already have experience working with open source communities,
they are also active in OpenResty <https://github.com/openresty>, Kong <
https://github.com/Kong> and other projects.
At the same time, we will learn more open source experiences by following
the Apache way in our incubator journey.

Therefore, we believe we have enough experience to deal with open source.

=== Homogenous Developers ===

The current core developers work across a variety of organizations
including Meizu,
ke.com, dasouche.com, Weibo and fansup.mobi; some individual developers are
accepted as core developers
of APISIX as well. Considering that qianxin.com and aispeech.com have shown
great interest in APISIX,
we plan to encourage them to contribute and invite them as contributors to
work together.

=== Reliance on Salaried Developers ===

Most members of the PMC and Committer Team, are paid by their employers to
contribute to this project.
APISIX itself and the API gateway are very attractive and important for
every company the contributors work in,
and they have no reason to stop them. Contributions and new committers are
expected.
And we will make efforts to increase the diversity of the contributors.

=== Relationships with Other Apache Products ===

APISIX already support Apache Skywalking as one of the APM services,
and will proxy for Apache dubbo and Apache brpc. Also we are considering
integrates Apache Zookeeper as one of the
service registration/discovery mechanisms.

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

We acknowledge the value and reputation that the Apache brand will bring to
APISIX.
However, we prefer that the community provided by the Apache Software
Foundation will enable the project
 to achieve long-term stable development.
So APISIX is proposing to enter incubation at Apache in order to help
efforts to diversify the community,
not so much to capitalize on the Apache brand.

== Documentation ==

A complete set of APISIX documentations is provided on github in both
English and Simplified Chinese.

    - English <https://github.com/iresty/apisix/blob/master/README.md>
    - Chinese <https://github.com/iresty/apisix/blob/master/README_CN.md>

== Initial Source ==

The project consists of two distinct codebases: the server and the
dashboard.
These have existed as separate git repositories.

    - https://github.com/iresty/apisix
    - https://github.com/iresty/apisix_dashboard

== Source and Intellectual Property Submission Plan ==

As soon as APISIX is approved to join Apache Incubator, zhiliu will provide
the Software Grant Agreement(SGA)
 and initial committers will submit ICLA(s).
The code is already licensed under the Apache Software License, version 2.0.

== External Dependencies ==

As all backend code dependencies are managed using Luarocks
 <
https://github.com/iresty/apisix/blob/master/rockspec/apisix-dev-1.0-0.rockspec
>,
none of the external libraries need to be packaged in a source distribution.

All of dependencies have Apache compatible licenses,and the detail as
follows:

Dependency License Comments

lua-resty-session BSD 2-clause
lua-resty-http BSD 2-clause
lua-resty-balancer BSD 2-clause
lua-resty-template BSD 3-clause
lua-resty-cookie BSD 3-clause
lua-resty-etcd Apache-2.0
lua-resty-ngxvar Apache-2.0
lua-resty-openidc Apache-2.0
lua-resty-healthcheck-iresty Apache-2.0
lua-resty-jwt Apache-2.0
opentracing-openresty Apache-2.0
lua-resty-radixtree Apache-2.0
lua-resty-iputils MIT
lua-protobuf MIT
lua-resty-jit-uuid MIT
lua-tinyyaml MIT
lua-rapidjson MIT
luafilesystem MIT
iresty-nginx-lua-prometheus MIT

As all front-end dashboard dependencies are managed using NPM
<https://github.com/iresty/apisix_dashboard/blob/master/package.json>,
none of the external libraries need to be packaged in a source distribution.

All of dependencies have Apache compatible licenses,and the detail as
follows:

Dependency License Comments

vue-image-crop-upload ISC
tinymce/tinymce-vue Apache-2.0
echarts Apache-2.0
fuse.js Apache-2.0
xlsx Apache-2.0
jszip MIT
vue-typescript-admin-template MIT
vue-element-admin MIT
types/http-proxy-middleware MIT
axios MIT
clipboard MIT
codemirror MIT
cors MIT
driver.js MIT
element-ui MIT
faker MIT
file-saver MIT
http-proxy-middleware MIT
js-cookie MIT
jsonlint MIT
lodash MIT
morgan MIT
normalize.css MIT
nprogress MIT
path-to-regexp MIT
register-service-worker MIT
screenfull MIT
script-loader MIT
sortablejs MIT
tui-editor MIT
uuid MIT
vue MIT
vue-class-component MIT
vue-count-to MIT
vue-i18n MIT
vue-property-decorator MIT
vue-router MIT
vue-splitpane MIT
vue-svgicon MIT
vue2-dropzone MIT
vuedraggable MIT
vuex MIT
vuex-class MIT
vuex-module-decorators MIT
yamljs MIT

== Required Resources ==

=== Git Repositories ===

    - https://github.com/iresty/apisix.git
    - https://github.com/iresty/apisix_dashboard.git

=== Issue Tracking ===

The community would like to continue using GitHub Issues.

=== Continuous Integration tool ===

Travis CI

=== Mailing Lists ===

    - APISIX-dev: for development discussions
    - APISIX-private: for PPMC discussions
    - APISIX-notifications: for users notifications

== Initial Committers ==

    - Ming Wen(moonbingb...@gmail.com)
    - Yuansheng Wang(membp...@gmail.com)
    - Zhiyuan Ju(jjzhiy...@gmail.com)
    - Junxu Chen(4061...@qq.com)
    - Yong Li(chnliy...@hotmail.com)
    - Suo Zhang(coolsoul0...@qq.com)
    - Ke Tang(itangke1...@gmail.com)
    - Chunlin Wu(lin...@live.com)
    - Lang Wang(gk...@qq.com)
    - Hui Li(794089...@qq.com)
    - Zhiyong Li(lizhiyong4...@gmail.com)

== Affiliations ==

    - zhiliu: Ming Wen, Yuansheng Wang
    - Meizu: Junxu Chen
    - Dasouche: Yong Li
    - Individuals: Zhiyuan Ju
    - Yanhuang Online: Suo Zhang
    - GangRong Tech: Ke Tang
    - Axinfu: Chunlin Wu
    - Learnta: Lang Wang
    - Tencent: Hui Li
    - Zero tone Tech: Zhiyong Li

== Sponsors ==

=== Champion ===

    - Willem Ning Jiang, ningji...@apache.org

=== Mentors ===

    - Willem Ning Jiang, ningji...@apache.org
    - Justin Mclean, jmcl...@apache.org

=== Sponsoring Entity ===

We are expecting the Apache Incubator could sponsor this project.

Reply via email to