Background
The TiDB('s) Internals forum is a great place for async communication. It runs well, but the real-time communication for TiDB/TiKV is still in chaos.
For a long time in history, TiDB/TiKV uses slack. We have tidb-community and tikv-wg. In the meantime, PingCAP uses WeChat Enterprise. So the community doesn’t know what happens inside PingCAP. And the slack is not so active.
For now, PingCAP switches to Lark. It’s better than WeChat, but still not so well for the community. We can’t establish a group/chat between the community and core contributors.
The good news is Lark intends to build an open platform, so it provides public APIs as described in docs. And our great open source community has built SDKs like https://github.com/galaxy-book/feishu-sdk-golang
So it’s possible to connect lark to the matrix, slack, telegram, and so on.
Proposal
So I propose to unify TiDB/TiKV real-time communication channels into the matrix and connect to lark and slack.
Matrix is an open network for secure, decentralized communication.
- It has a secure, decentralized open standard
- It is licensed under Apache 2.0
- Both server and client is open source
- It’s in active development
- …
It required gitter and provides a bridge to most IM platforms: like IRC, slack, telegram, discord, skype, even WeChat (need extra setup).
Matrix is a great place to be the communication center. All our developers can use whatever tools they want to join in.
Retional
What’s the benefit for developers in PingCAP?
We need real-time communication.
Neither GitHub issue nor internal.tidb.io is not good for detailed problem discussion. With this unified communication channel, we can set up a more fast and open communication workflow.
Think about this bad pattern:
In our new communication design, we will:
- Start a new room at scale
- Schedule a quick 10 minutes meeting
- Link the room’s permanent link back
Like:
We can keep a traceable record while solving problems. It’s important for the community to grow up.
How about private chats in PingCAP?
The async communication channel is set up for tidb / tikv developers. We don’t need to connect all internal rooms to the matrix.
For example, sig-copr, wg-xxx is great to be connected to the matrix. But the rooms with PingCAP business is not fit.
Why not Telegram, Discord, or Xxxx?
There are bridges for telegram and discord, and easy to connect. The most important part of this proposal is to decide where the center is. And which, how many tools to connect is not the core problem, we can leave them to the further.
How about WeChat?
It depends.
Here are two solutions:
- Leave WeChat a separate channel and keep it as is.
- Connect WeChat into the matrix via https://github.com/wechaty/matrix-appservice-wechaty
Why not Slack?
Oh, It’s too expensive.
The price mode of Slack is not suitable for open-source communities. And the free version can’t preserve all chatting history.
Thanks for any comments!