According to the Apache Software Foundation “Community Led Development: The Apache Way” guidelines, there are several options available for communication amongst a community:
Communication is via mailing lists. These are “virtual meeting rooms” where conversations happen asynchronously, which is a general requirement for groups that are distributed across many time zones (as is normally the case for Apache communities).
Some projects additionally use more synchronous messaging (for example, IRC or instant messaging). Voice communication is extremely rare, normally because of costs and the language barrier (speech is harder to understand than written text).
In general, asynchronous communication is important because it allows archives to be created and it’s more tolerant on the volunteer nature of the various communities.
The primary method for communication within the Apache TVM project is through the Discuss forums and mailing list, fulfilling the preferred method of asynchronous communication. However, within the community there are instances where more synchronous “chat in the hallway” style of communication can aid in working through troubleshooting or feature design. To this end we’ve started monthly community meetings, however the frequency and and video format remains a barrier for higher bandwidth and more frequent communication. In an effort to find a solution in the middle, this is a proposal for the introduction of an official chat platform for the Apache TVM community. The purpose of this chat platform is to facilitate synchronous high bandwidth design and troubleshooting between contributors and users. In contrast to the Discuss forums and mailing lists, where all official decisions and discussions for the project must still be communicated, a chat platform will allow for a non-archived “hallway conversation” style of communication.
There are a number of different options for the community to consider:
Slack: This is a proprietary chat system, which the community will need to find a financial sponsor for to enable features to make the platform worthwhile. It has the advantages of wide adoption with strong integrations for managing community health. It has the disadvantages of being closed source, and a number of communities are moving away from it because of rising costs associated with maintaining it.
Discord: This is a proprietary chat system, that is free for communities with the option for individuals to upgrade to extra features. It has the advantage of wide adpotion with a number of additional features for improved synchronous communication, including voice and streaming. Its primary disadvantage is that it is closed source.
Microsoft Teams: Another proprietary chat platform that is free. Advantages include wide adoption and extensive video conferencing tools. Primary disadvantages are that it is closed source, and not as well adopted by open source communities.
Gitter: Gitter is an open source chat platform developed and maintained by GitLab. Gitter is free for all public and private conversations. It has the advantage of being open source, and integrates with Matrix. Disadvantages include that it is not as widely adopted as other platforms, and the MVC development model may leave many features partially implemented or unstable.
Mattermost: This is an open source chat platform, with an aim of replacing Slack functionality. It has the advantage of being open source. The disadvantage is that it is not widely adopted, and is expensive to host as a SaaS (more expensive than Slack), with an alternative being self-hosted (with the cost of management and administration).
After reviewing the different options, the recommendation is to pilot either Discord or Gitter as community chat platforms. The purpose of this thread is to open this up the community for discussion, with the goal of making a decision on a platform to pilot before the end of the month.