Tuesday, May 12, 2020

Planet MySQL Community: Requirements RFC

As indicated in a previous post, I am working on a Planet MySQL Community (this name is not final, see below).  In this post, I want to present what I think the requirements should be for this new aggregator.  This is a Request for Comment (RFC): I do not claim completeness nor perfection, this might (will) evolve, and your remarks are welcome.  A tl&dr is available in the Summary of Requirements below.

Update 2020-05-15: I wrote a follow-up post presenting the new aggregator in beta: Planet for the MySQL Community: Pluto Beta.

For sharing your comments and thoughts, you can use the mysqlcommunity_org channel in MySQL Community Slack.  If you cannot join this Slack, fall-back to the Planet MySQL Community Discussion topic from the general stream in the Mar*aDB Foundation Zulip (I cannot write the exact name as I would be censored by Planet MySQL; please carefully read my first post in the topic).  If you believe your input should be private, send me a direct message on Slack, Zulip of at jfg DOT mysql AT gmail.com.

Summary of Requirements:
  • no censorship (but obviously some content management, which means ways to contact authors including Twitter and email),
  • provide a feed (ATOM or RSS),
  • provide a minimalist web page,
  • on the web page, provide a list of aggregated blogs,
  • on the web page, indicate how to add/remove blogs,
  • ideally, the configuration should be in public version control,
  • ideally, the software used should be free and open-source,
  • only summary of posts on the web page and in the feeds (no full content),
  • this initiative should stay independent from all MySQL vendors,
  • recognize Oracle as an important community member.
Some details and justifications for these requirements are available below.  But first, let's talk about the name.

Naming is hard !

For now, I am using the name Planet MySQL Community.  As previously shared, I already registered the domain mysqlcommunity.org.  I also reserved other "name" related resources, one of them is mentioned below (mysqlcommunity.org GitHub organization ).  I am aware these names might generate friction with Oracle over the MySQL trademark, and I am planning to address this (anyone from Oracle reading this and willing to help can contact me).  In the meantime, I need to start with something so I am using the previously mentioned names knowing they will probably change in the future.

Ecosystem might be a better name than Community !

Also, I do not think I will stick with a name containing the word Community.  In the past, I preferred Ecosystem, but it seems I slipped back to Community.  LinuxJedi wrote a nice post about Community vs Ecosystem.  In short, I believe Ecosystem is more inclusive than Community and from now on, I will use Ecosystem for talking about the MySQL Community/Ecosystem (I will keep the name Planet MySQL Community for now, I know this is confusing, remember that naming is hard).  Anyhow and as pointed out above, the name is not final and your input is welcome.

The Planet MySQL Community project might be redundant following the new Planet Mar*aDB policy.  Nevertheless, I will start it anyway as I believe a vendor independent solution has merit (the Foundation is not exactly a vendor, but most of what applies to vendors also applies to it).

Right now, this initiative is my own, but I am open to hand it over to an organization whose main mission is serving the MySQL Ecosystem.  I am also planning to build a team of people for managing Planet MySQL Community, contact me if you want to help (some sysadmin skills required).

At some point we will need to find funding or sponsors.  For now, I have bought a few domain names on my own budget and I will handle hosting while in beta.  It would be handy to have credits from a Cloud Vendor for the infrastructure (Amazon WebServies, Google Cloud Platform, Microsoft Azure, Alibaba Cloud or other).  If you can help on these subjects (credits, funding or sponsors), please contact me.

No Censorship

The inception of Planet MySQL Community is the censorship on Planet MySQL, so we do not want this on the new aggregator.  However, the content should be relevant to the MySQL Ecosystem, so we need a content policy.  Some ideas/brainstorming about this policy below, and this will obviously evolve.

By MySQL Ecosystem, I mean all the people interested in the MySQL database and its Variants.  These include Mar*aDB, Percona Server, Amazon RDS and Aurora, Google Cloud SQL for MySQL, and Microsoft Azure and Alibaba flavor(s).

If a blog is only about MySQL or Variants, there is no problem including all its posts on Planet MySQL Community.  If a blog contains mixed content, ideally the MySQL and Variants posts should be tagged and only the tagged feed should be submitted.  If an aggregated feed only provide a small amount of relevant content, its owner might be asked to provide a tagged feed, and non-compliance might get the feed removed.

No censorship does not mean that harmful content will be tolerated.  What consists in harmful content is obviously subjective, and I will do my best to deal with it in an open and fair way.  And this brings us to content management...

Content Management (and contacting authors via Twitter and email)

I would like to avoid having to spend too much time on content management.  My plan is to have the MySQL Ecosystem involved in this.  For giving people a way to impact the aggregated content, I want to provide a way for contacting authors.  Twitter looks like a good and widely adopted tool for this.  As an example, if a feed has too much of non-MySQL related content, someone would be able to contact the author via Twitter to ask him to provide a tagged feed.

If contacting the author does not lead to the expected result, people could fall back to opening a public issue (see version control and GitHub below).  If it would be better to handle this in private (or if you do not have a GitHub account), an email could be sent to me (the address should be easy to find on the website, and I am currently thinking about planet AT mysqlcommunity DOT org).

To be able to resolve a problem with content producers, I need a way to privately contact them.  An obvious solution is email.  I would not make email addresses public, but as I want people to submit feeds via pull requests (see version control below), this becomes challenging.  Public-key encryption is a solution, but there are problems with this, so I might come up with something else (maybe sending me an email would work).  In the meantime, an email encryption howto can be found on GitHub.

I understand there are other solutions than Twitter to provide a way to publicly contact content producers, and there are other solutions than email for private communication.  However, if using the favorite instance of each author, it will become very complicated for me and for the ecosystem.  I want to find the right balance between being an open aggregator and easing the administration of Planet MySQL Community.  Please take this into account (do not be too creative) when suggesting something regarding this topic.  :-)

A first version of the Aggregation and Content Policy can be found on GitHub.

Provide a Feed

The main goal of Planet MySQL Community is to provide an aggregated news feed for the MySQL Ecosystem.  This feed can be ATOM or RSS.  I could provide both, or more, but the focus of the project should be on doing one thing well instead of doing many things in an average way.  Providing a feed is the one thing that should be done well !

Provide a Minimalist Web Page

In the logic of doing one thing well (providing a feed), we might compromise on the quality of the Planet MySQL Community presentation.  It would be nice to have a very shiny website, and to support all browsers and mobile devices, but this is not the main goal of this project.  The aggregated content should mainly be consumed by a feed reader, not directly via the website.

Provide a List of Aggregated Blogs

Even if the Planet MySQL Community website might be minimalist, it should provide a list of aggregated blogs.

Indicate How to Add/Remove Blogs

Even if the Planet MySQL Community website might be minimalist, it should provide a procedure for adding/removing blogs.

Configuration should be in Public Version Control

This is a soft requirement.  Ideally, the configuration of Planet MySQL Community, including the list of aggregated blogs, should be in public version control, but if this requirement makes it too complex to build something, then it might be dropped.

For now, I created the mysqlcommunity.org GitHub Organization, but this name might change.  There are already a few repositories in there, feel free to check them.

Software used should be FOSS

This is a soft requirement.  Ideally, Planet MySQL Community should use free and open-source software (FOSS), but if this requirement makes it too complex to build something, then it might be dropped.

This is a trade-off between believing in FOSS and serving the MySQL Ecosystem in the context of limited time resources.  I want to allocate my time in priority to the latter, and that might be at the expense of using FOSS.

No Full Content in Web Page or Feed

This one is opinionated.  I believe a content creator should have traffic on his website.  If I provide full content on Planet MySQL Community or in the feed, I steal traffic from the content creator.  I do not want to do this.

I might change my mind on this one, feel free to convince me.

Independent From MySQL Vendors

In some situations, the interests of the MySQL Ecosystem might conflict with those of vendors (we have a good example with the censorship on Planet MySQL).  For this reason, I believe Planet MySQL Community should stay independent from all MySQL vendors which includes Oracle, the Mar*aDB Corporation and Foundation, and Percona.  This means the DNS name should not be owned by a vendor, nor the hosting of the website.  Also, the team managing the website should not include a significant number of people employed by a single vendor.  I would welcome sponsorship from vendors, but without any string attached.

Oracle as an Important Ecosystem Member

Even if I want to be independent from MySQL Vendors, I want to recognize Oracle as an important member of the MySQL Ecosystem.  After all, Oracle owns the MySQL trademark and had been globally good to MySQL (How Oracle's Acquisition Was Actually the Best Thing to Happen to MySQL and One Giant Leap For SQL: MySQL 8.0 Released).  I will carefully listen to all feedback from Oracle on Planet MySQL Community (or whatever the final name will be) and my wish is to take these into account while also keeping in mind the interests of the MySQL Ecosystem.

If I forgot something, please let me know.  I hope to be able to provide a beta version of the aggregator very soon.


  1. Hi Jean-François,

    I believe that "No Full Content in Web Page or Feed" is a serious regression compared to https://planet.mysql.com/rss20.xml and https://mariadb.org/planet-rss which are usually relaying the entire RSS feeds.

    Those who want to drive traffic to their own web page can "opt in" to that by truncating their RSS feeds themselves. They can even choose where and how exactly to truncate the RSS version, instead of having it arbitrarily truncated by a third-party RSS aggregator (like https://planet-beta-pluto.oursqlcommunity.org/atom.xml currently does). The posts of the MariaDB Foundation appear to be doing that: the RSS feed seems to be the first paragraph, an ellipsis that is a hyperlink to the post, and a statement "The post X appeared first on MariaDB.org" (with two hyperlinks).

    A similar example is https://minervadb.com/index.php/2020/07/02/postgresql-internals-and-performance-troubleshooting-webinar/ which is truncated by the aggregator (and hyperlink stripped as well). The entire body of the post in Liferea looks like the following:

    "PostgreSQL Internals and Performance Troubleshooting Webinar from Shiv Iyer MinervaDB provides full-stack PostgreSQL consulting, support and managed Remote DBA Services for several customers globally addressing performance, scalability, high availability and database reliability engineering. Our prospective [...]

    The post PostgreSQL Internals and Performance Troubleshooting Webinar appear"

    If I were the original publisher, I would want all hyperlinks (including any pictures) to be preserved, and to have full control on any truncation.

    Mainly, I am complaining as a user: I prefer to read all blog posts via the RSS feed in Liferea. If I see truncated RSS feeds, based on the abbreviated content I decide if it is interesting enough to read the full page.

    1. Thanks for your comment Marko. I do not have much time to reply as I am in vacations, so forgive sorry text.

      First, it cannot be considered a regression as the aggregator does not claim to be compliant with any others.

      Your comment "as a user" makes sense, I understand it is your preference to read posts in your RSS aggregator.

      The solution you suggest also makes sense. But before making any changes, I would like to have feedback from more users, content producers and community members. Please engage with them in the Slack channel mentioned in the post.