Some years ago, I hosted my own matrix server for a few months. I’m an experienced self-hoster, but I remeber that Matrix was paticularly hard to host, requiring weird proxy rules, DNS adjustments, federation never worked reliably and push notifications never worked at all. I ditched the project soon because I also had no real use for it. However, I recently had some ideas where a Matrix server would be useful again. Has anyone attempted to install it recently and can tell me whether the situation has improved? Also, which server do you recommend? There still is synapse but I found it paticularly complicated to host. Dendrite is now archived and the current fork seems to be tuwunel which doesn’t seem to be under very active development.
IRC and XMPP are infinitely less painful, honestly, and both were designed around federation from the ground up, long before it was cool.
IRC does not have any federation, and XMPP does it in a completely different way from Matrix that has unique pros and cons.
IRC is designed for you to connect to a specific server, with an account on that server, to talk to other people on that server. There is no federation, you cannot talk to oftc from libera.chat. Alongside that, with mobile devices being so common, you’d need to get people to host their own bouncer, or host one for nearly everyone on your network.
XMPP federation conceptually has one major difference compared to Matrix: XMPP rooms are owned by the server that created them, whereas Matrix rooms are equally “owned” by everyone participating in it, with the only deciding factor being which users have administrator permissions.
This makes for better (and easier) scaling on XMPP, so rooms with 50k people isn’t that big of an issue for any users in that room. However, if the server owning the room goes down, the whole room is down, and nobody can chat. See Google Talk dropping XMPP federation after making a mess of most client and server implementations.
On Matrix, scaling is a much bigger issue, as everyone connects with everyone else. Your single-person homeserver has to talk with every other homeserver you interact with. If you join a lot of big rooms, this adds up, and takes a lot of resources. However, when a homeserver goes down, only the people on that homeserver are affected, not the rooms. Just recently, matrix.org had some trouble with their database going down. Although it was a bit quieter than usual, I only properly noticed when it was explicitly mentioned in chat by someone else. My service was not interrupted, as I host my own homeserver.
The Matrix method of federation definitely comes with some issues, some conceptually, and some from the implementation. However, a single entity cannot take down the federated Matrix network, even when taking down the most used homeservers. XMPP is effectively killed off by doing the same.