Matrix
Contents
Motivation
The TechInc community is using a bunch of different protocols and platforms to communicate with each other, such as IRC, Telegram, Discord, Signal, email, etc. Unfortunately, this leads to fragmentation, as not everybody is able to participate in the conversations that people are having within the community. It would be nice if people can to talk to each other, but without them being peer pressured onto platforms that they don't want to use.
This is one of the things that Matrix hopes to address
Matrix defines a set of open APIs for decentralised communication, suitable for securely publishing, persisting and subscribing to data over a global open federation of servers with no single point of control. Uses include Instant Messaging (IM), Voice over IP (VoIP) signalling, Internet of Things (IoT) communication, and bridging together existing communication silos - providing the basis of a new open real-time communication ecosystem.
With Matrix, it becomes possible for a Telegram user to talk to a user on Discord, and from a Signal user to talk to a user on IRC. Of course, this should not be done without the explicit consensus of the existing communities. Each platform and protocol has different rules and norms that cannot and should not just be thrown out of the window for the sake of interoperability.
Bridging communication silos with Matrix
We would like to setup a Matrix instance. This will be hosted on space infrastructure. There are several ways that we can setup a Matrix instance and the various bridges, each having their own upsides and downsides. Before deciding on what works best, we need a common understanding of the different options. The methods described below are just there to illustrate some of the different options. The exact details, such as the channel names, what platforms to bridge, and everything else, are of course open for discussion.
Method 1: Full bridging
With full bridging, all channels are bridged to all other channels on all other platforms.
Channel | Matrix | IRC | Telegram | Discord |
---|---|---|---|---|
General | #general:techinc.nl | #techinc-general | #⃣ General | #general |
Updates | #updates:techinc.nl | #techinc-updates | ❗ Updates | #updates |
Printing | #printing:techinc.nl | #techinc-printing | 🖨 Print Team | #printing |
Electronics | #electronics:techinc.nl | #techinc-electronics | ⚡ Electronics | #electronics |
Networking | #networking:techinc.nl | #techinc-networking | 💻 Network Team | #networking |
Food ordering | #foodordering:techinc.nl | #techinc-foodordering | 🍕 Food Ordering | #foodordering |
Advantages
- Everybody can talk to everybody, regardless of the platform, client or protocol that they prefer to use. A message sent in a channel on one platform will be relayed to the corresponding channel on every other platform.
Disadvantages
- There is no opt-out. Sending a message in a bridged channel will broadcast it to every other platform.
- There might be a mismatch between the norms that each platform is currently accustomed to, and the norms that other platforms expect
Method 2: Partial bridging
Everything is bridged to the TechInc-hosted Matrix instance, but the Matrix instance does not necessarily bridge other platforms together.
Channel | Matrix | IRC | Telegram | Discord |
---|---|---|---|---|
IRC | #irc:techinc.nl | #techinc | ||
General | #general:techinc.nl | |||
Updates | #updates:techinc.nl | ❗ Updates | #updates | |
Printing | #printing:techinc.nl | #techinc-printing | 🖨 Print Team | #printing |
Electronics | #electronics:techinc.nl | #techinc-electronics | ⚡ Electronics | |
Networking | #networking:techinc.nl | #techinc-networking | 💻 Network Team | |
Food ordering | #foodordering:techinc.nl | 🍕 Food Ordering |
Advantages
- Everything is bridged to the TechInc Matrix instance, so everybody can get access to all channels through the TechInc Matrix instance.
- Only certain channels are bridged to other platforms besides Matrix.
Disadvantages
- Might be difficult to distinguish a channel that is bridged to both Matrix and other platforms, from a channel that is just bridged to Matrix.
Method 3: Single-channel bridge
Channel | Matrix | IRC | Telegram | Discord |
---|---|---|---|---|
Bridged | #bridged:techinc.nl | #techinc-bridged | 🌉 Bridged | #bridged |
Advantages
- Very explicit in showing that it is a bridged channel.
Disadvantages
- People can only join conversations that happen in the bridged channel. Any conversation that happens in a different, non-bridged, channel is not accessible through Matrix.
- Unlikely that people will actually use this channel, which sort of defeats the purpose.
What information is being sent over a bridge?
Depending on the platform, a bridge sends the following information to the Matrix instance:
- Your nickname
- The content of the messages that were sent
- When messages where sent
- Join/leave notifications, if available
- Typing notifications, if available