Meet Apache ShenYu, new Top-Level Project

Apache ShenYu project logo.

Apache ShenYu is now a Top-Level Project (TLP). This means that the project has graduated from the Apache Incubator. The incubator helps incoming projects to the Apache Software Foundation (called ‘podlings’) adopt the Apache style of governance and operation and guides them to the ASF services available to Apache projects. Podlings also benefit from mentors that help projects navigate all the ASF teams and help facilitate a podling’s growth and operation.

We spoke to Yu Xiao, Apache ShenYu V.P., to learn more about the project, technology, community goals, and plans.

Congratulations on graduating to Top-Level Project status! Briefly, how would you describe your project so that the average user would easily understand it?

Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot-plugging, and easy deployment features, it provides users with a complete set of full lifecycle API gateway out of the box, including service proxy, protocol conversion, and API governance, etc.

Let’s expand on that description some more. Who is your audience, and what key features of the technology do you believe will excite people?

Apache ShenYu provides very rich plug-in ecological components, covering the mainstream service proxy, security, API governance, and observability, etc. I think that people will be excited by the following:

Dynamic rules: Traffic filter and matcher, ability to perform complex arbitrary combinations and to update in real-time in the JVM local cache.

Service Proxy: Support for Apache Dubbo, Spring Cloud, gRPC, Motan, SOFA, TARS, WebSocket, MQTT.

API governance: Provides full lifecycle management of API registration, publishing, graying, modification, offline, fusing, limiting, and so on.

Observability: Full link tracing, full amount of logs, and rich metrics.

Is there an origin story behind the project? Tell us how you got to this point in the project’s history.

To answer this question, I would like to divide it into several stages, covering the founding, development, and our time within the Apache Incubator. In March 2018, I started a business with some friends. At the time, we were mainly trying to solve the HTTP protocol conversion to Apache Dubbo protocol and how to update the rules dynamically while flexibly controlling the traffic. I’m a very creative-minded engineer, so I decided to develop one by myself. After I finished, I made it open source. I received a lot of help and attention from friends.

In September 2018, I met Willem Ning Jiang at an open source event and learned about the Apache Way. After that, I used the Apache Way approach to govern the community and achieved very good results.

In May 2021, we contacted Willem Ning Jiang to be our guide and mentor. We also contacted Jincheng Sun and Duo Zhang to be mentors for the project. With their patient guidance and enthusiastic help, we completed the incubator proposal, incubator discussion, incubator voting, and other processes, and entered the Apache incubator successfully.

Using the Apache Way to govern the project, many new PMCs, committers, and contributors joined the community. We saw a healthy community grow as we solved problems and bugs continuously. In June 2022, under the guidance of our mentors, the community held a graduation discussion, and we reached graduation after the vote passed.

What has been your experience growing the community?

To answer this question, I’m going to cover three things we’ve learned during the process:

Keep it Open
Any discussion, development, or issue should be in an open public place, such as the Apache mailing list and GitHub issue, where discussion is generally very polite and restrained. Another benefit is that it helps form a traceable history for our new learners.

Keep Listening
In the open source community, we need to hear and understand the voices of our various stakeholders, whether users, developers, etc. Everyone has their own needs and has good advice to share if you listen. We have found an excellent way to learn about what’s needed by different people and benefit from their advice is to run regular community meetups.

Find Value
Participation in open source software development and an open source community has its challenges. The open source community’s onus is finding your own value and positioning. Some people volunteer in open source to obtain honor, others are more willing to help people, and it’s essential that the community helps everyone to understand the value they bring to the project and community.

What are the next steps? What does the future hold for the project?

Apache ShenYu needs to be integrated with cloud native and build an ecosystem with rich plug-ins and multi-language. In the future, I hope people will think of Apache ShenYu instinctively when they talk about API Gateway.

What’s the best way to learn about the project and try it out?

The official homepage for the project is a good starting point for new contributors and users interested in learning more. The home page has a Get Started link to our documentation section, which provides a helpful overview covering the main features, architecture design, and modules. We would also recommend reading our Starting Demo blog post, which provides an easy walkthrough from preparing your environment all the way through to simulating a test HTTP request. Finally, you can jump straight into the code on our GitHub.

Read more about Apache ShenYu

Head to the official Apache ShenYu website to discover more about the Java-native API Gateway today!