Exploration and expansion of the Apache ShardingSphere community

01 Why open source?

A better career

  1. More career opportunities. Industries can establish the cloud platform and provide business services through open-source projects. Besides, by contributing to the open-source community, industries can enhance their technical influence. Since industries can benefit from open source, many of them are hungry for open-source talents. The open-source job is always technique-related and community-based, which relatively makes your schedule listen to yourself.
  2. Better capability. By contributing to the open-source community, you can improve not only technical skills but also soft skills like Language skills, social skills, and marketing skills. In addition, you will achieve innovation ability as well, if you have a chance to create a brand new open-source project.
  3. Great personal relationship. You will not only focus on your job, salary, KPI, e.t. Those industry-related activities, such as attending a seminar, tech sharing, writing blogs, even tech investing, will attract your attention. Besides, you can also communicate and make friends with foreign people worldwide in the international open-source community. As this phrase said, engage your body familiar with job skills; engage your mind closed to the world. The open-source experience will bring you more potential opportunities.
  4. Earned public recognition. The effort of open-source work you did is totally open to anyone at any time, which means you can gradually receive public recognition. In contrast, the effort of in-company work is supposed to be judged by your leaders themselves, not the public, which means an inadequate evaluation is likely to give.

An enjoyable career

  1. Self-growth. If you enjoy doing one work, you will grow up with pleasure. As a software engineer, you should learn to enjoy your work and be a self-driven person, which is the real shortcut to success.
  2. Accomplishment sense. When your work is recognized by others, when your work made the project better and better, when you got new skills, you will strongly feel the sense of accomplishment and the pleasure of your career.

02 What is the Apache software foundation?

03 What is Apache ShardingSphere?

04 Apache ShardingSphere Community Statistics

  1. Mail list Looking at the data from dev@, we found 38 emails about 20 topics from 14 participants in May 2019, but with four months of effort, the data rose to 148 emails concerning 34 issues from 37 participants. Besides, we moved the GitBox emails to notification@ to avoid including notification emails and display the pure email data.
  2. GitHub The commits graph of GitHub was almost effected by my commits before June 2018, which means its development only depends on one person and is full of the risk. To turn this situation around, we did a lot of works. Finally, we got 33 contributors, 100 merged PRs, 167 handled issues, 591 modified files, and 4K new stars, which marks it has become an active and open community.
  3. Contributors There were only 11 initial committers during an extended period. This situation was turned around until two or three months ago. And presently, we have 15 PMCs, 10 committers, and 90+ contributors. However, we are still ongoing, so we believe more and more PMCs, committers and contributors will dive into our community in the future.

05 The core ideas of the Apache ShardingSphere community

  1. Community is over code. This is one of the essential principles of Apache Software Foundation, and exactly what we believe. Although a project itself is necessary, the more important point is to build an active and open community, only by which this project can evolve and develop continuously.
  2. Believe contributors. Anyone willing to join an open-source community is generally full of enthusiasm and wants to make the project better through their contribution. Therefore, the community is supposed to respect and welcome them and provide the needed help. However, one point needed note is that committers and contributors are different. We would like to grant more privileges to a committer and trust them more since they have become familiar with this project and built faith with others.
  3. Automated Testing. More contributors, more Pull requests. In this situation, it is hard to guarantee the effectiveness and efficiency of the project by manual. Therefore, we decide to rely on automated testing to evaluate each Pull request, which helps contributors and reviewers merely focus on their work.
  4. Self-service first. More questions get increased with more and more users. How to handle these questions efficiently? Our solution is to build user self-service channels firstly and provide other communication ways. In general, users can solve some of the common issues with documents and FAQ pages by themselves. If that does not work, users can raise their special issues on GitHub or discuss them by email.
  5. Public and online working mode. Public work means the issue only discussed in public is valid — otherwise, invalid and no chance to be solved. Online work means most of the discussions are online and asynchronous, requiring participants to provide information as detailed as possible.
  6. Architecture refactoring. Through SPI, we made each of the modules relatively independent, which means when you make some changes to one module, it will have little effect on another module. For instance, ShardingSphere parser can parse many dialects of different databases out. If a contributor modifies MySQL’s grammar, he or she does not need to take care of other grammar definitions of other databases. Consequently, many contributors work on different modules of this project, mostly without significant conflicts.
  7. Extensive guidance. A lot of documents are given to help users and contributors to learn more about this project and community quickly and easily. No matter it is about how to build, or how to contribute to this community, you can find these questions or topics on our website easily. In other words, extensive guidance helps users get started quickly and saves the community’s effort to answer repetitive questions.
  8. Coding standard. Standardized coding style makes contributors easy to understand and values their work. Once one project begins to rot, it will get out of control quickly. Because of that, we provide check style file and coding standard requirement to help the project go ahead continuously and gracefully.
  9. Sorting requirements. The community always requests bugs, new features, or function enhancement. However, as the core committers, we need to make a schedule for these requirements. That is, we need to decide which issue is supposed to include in the next release, what the deadline is, and which contributor is willing and qualified for this issue. As a result, a release discussion will collect the suggestions and opinions from different ones and decides the content and DateTime of the next release.
  10. Multiple channels for communication. Different talking channels are fit for various discussions. For example, all the important notification and discussion will take place in email threads; Questions and code commits are raised in GitHub (which also help archive); The detailed or wordy discussion is welcomed in the WeChat group or slack since people can give or receive replies promptly.




Transform any DBMS in a distributed database system & enhance it with sharding, elastic scaling features & more. https://linktr.ee/ApacheShardingSphere

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Real-time Currency Converter Using Python

How I allowed “hackers” to ssh into my server.

A First Look at the Alien World Minions

MASS-1 motor transport Marine awarded NCO of the quarter DVIDS (press release)

Basic Text Processing in Functional Style

A better way to develop your GraphQL API using Docker + PostgreSQL + Postgraphile

Macbook Gaming Rig: Portable Win 10 on an external SSD on a 2018 13-inch Macbook Pro w/AMD eGPU

How to install sshfs on MacOS Big Sur

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Apache ShardingSphere

Apache ShardingSphere

Transform any DBMS in a distributed database system & enhance it with sharding, elastic scaling features & more. https://linktr.ee/ApacheShardingSphere

More from Medium

Building a large-scale distributed storage system based on CNFS

Debugging Failing Golang Tests

Introducing Pyth Publishers Metrics

Community Column #6 — Bridgesplit Degen Mode Plays