One of the most powerful and important things about Open Source software is that it brings people together to work on a common goal. This is especially true if the project is setup as a Bazaar instead of a Cathedral.

Usually the groups of people need a framework to communicate to work together in. Initially these were called “communities”, but this isn’t working out so well in some cases, so in this blog post I’ll talk about why an “ecosystem” is better.

I’ll note now that everything here is my opinion and I don’t have any ill will towards MySQL or Oracle. This is just how I see things could be improved.

The MySQL world today is quite fractured. In my opinion, a lot of this comes down to governance and them leaning more towards the Cathedral method of Open Source software development. This is not the only Open Source project to have had this happen, but it is the one I’m most familiar with and the example I will use today.

MySQL has had so many forks for so many reasons that it is easy to write a book on it (there are many reasons why I won’t despite people asking). There have been attempts to graph the various forks which can be seen in this GitHub tree. At the time of writing I’m even aware of a couple of major forks from the past which are not there.

As with many projects, MySQL has a community and they have often had community managers to help with this. A community manager can be a varied role that nowadays usually called developer relations or evangelism.

Part of the framework MySQL has built for the community is Planet MySQL, this is a blog aggregator for community blogs which contain posts about things people are doing with MySQL. Unfortunately there have been several people pulling their blogs from Planet MySQL over an alleged censorship issue when competing projects are mentioned.

Now, Planet MySQL is owned by Oracle, not an independent body. The site is closed source, including the site configurations. Therefore I cannot comment for certain that this is happening but several people I trust say it is.

The fracturing of the MySQL world has led to competing projects and products being launched. I currently work for MariaDB which is one of the major competing forks of MySQL. In recent years the two projects have started to diverge in the direction they are taking, and I can see this divergence probably growing as time goes on.

Why ecosystems are important

Because there is no independent body managing things, the Planet MySQL site, and the community itself is effectively owned by MySQL. Whether or not they choose to excise any filtering or control on the community is entirely up to them. I’m not saying they do this, but without independence the option is there.

I don’t think it would be possible to have an independent body without a foundation that is made up from people of the various forks of MySQL. We know this can work, people from all the forks and the wide ecosystem work together to build a program for FOSDEM every year. With no particular bias to any fork.

Having a wider ecosystem instead of a community means that like-minded people can work together no matter which flavour of Open Source database they choose to use. Whether or not the software someone uses competes with another.

How would I fix this?

First of all a foundation would need to be built that has the common goal uniting all the communities of the forks of MySQL. It would need to be completely independent of any fork, have a balanced membership so there is no overall control by any single entity. This is difficult, but not impossible.

OpenStack built something similar, the OpenStack Foundation. Many competing companies with their own projects but also working together for a common goal. The entire framework for the ecosystem is open, and Planet OpenStack is Open Source and takes pull requests. I’m not saying the OpenStack way is perfect, and is not an exact parallel because the OpenStack Foundation also owns the source code for the main projects. But lessons can be learnt from it.

This body would oversee sites like Planet MySQL which would be an Open Source project on GitHub. Blogs could be added and removed using pull requests which would be reviewed by the independent body (mostly to weed out spam blogs).

This can go further to managing other communication tools for ecosystem. Such as chat systems. Everything open as much as possible.

The individual communities can still exist. The evangelism for an individual fork can still happen, but that would be separate from the ecosystem. Think of it as a Venn diagram, every community is a circle and where they cross in the middle, that is the ecosystem. That is the sweet spot where the participating users want to be.

Do I think this can happen?

I don’t know, it may already be too late. It would require involvement from communities that have not always been the friendliest to each other over the years. It would require a lot of diplomacy. But if it is possible I do think everyone will benefit, especially the users who are currently caught in the middle of the minor feuds that happen.

I have hope that people can come together. I have hope that eventually MySQL will see the advantages of a Bazaar Open Source way of thinking.

At the very least, lessons could be learnt from the what is happening today so that other projects don’t have similar problems.

Featured image is Loch Lomond by Abubakr Hussain, Mohammed-Hayat Ashrafi, Maaz Farooq, Farmaan Akhtar, Mohammed Shah. Used under a CC BY-SA 2.5 license.