4 ms·
Matrix and XMPP operate in very different ways Matrix is a graph database synchronization protocol, whereas XMPP is event based. Let's use group chats as an ex
by SamWhited 2y ago
Matrix and XMPP operate in very different ways Matrix is a graph database synchronization protocol, whereas XMPP is event based.
Let's use group chats as an example: with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server. This means it's very resource intensive to scale, but very reliable since you pretty much always have chat history available and if one server goes offline you can keep the group chat alive on one of the other servers (let's ignore netsplit style concerns for now, it's not really relevant to the high-level nature of the question). XMPP on the other hand is event based, this makes it much less resource intensive, but means that if the server you're trying to communicate goes down you don't have access to that chat room anymore (some servers mitigate this by using traditional high-availability techniques like clustering, but that's not really a protocol thing, I'm sure some Matrix servers also do clustering as part of their scaling strategy).
As far as features specifically related to IM, both support most of the same things, it's just a question of whether clients have implemented them or not in either protocol.
- dingnuts 2y agoThe real difference between XMPP and Matrix is that I can read the discussions about XMPP on this site without the CEO of the company that pretends not to own it, but does de facto own it through some kind of wannabe Sam Altman "it's actually a non profit that happens to be controlled by my for profit company" move, coming into the comments to denigrate anyone with an ounce of criticism for his product
- SamWhited 2y ago(oh yah, FWIW he's done this to me too; shows up and accuses me of being biased against matrix and not disclosing my affiliation with XMPP stuff… meanwhile he controls a company and gets paid by them, I just chose to work on XMPP open source stuff instead of Matrix stuff and don't get paid for it)
- tcfhgj 2y agoNot being paid doesn't mean less biased. To the contrary: I expect a high bias since you choose to spend lots of time on it despite not being paid for it
- SamWhited 2y agoOr I did my research and made an informed decision which to work on. I didn't start working on one then only decide to dislike the other based on sunk cost fallacy. Matrix already existed when I got into doing XMPP stuff, and I looked into both.
- tcfhgj 2y agoIt's not about back then, but about when you write comments
- SamWhited 2y agoSo any negative comment is somehow bias and I should be doing Matrix instead? I don't get what you're getting at. I am still aware of both protocols, I still don't like Matrix and think XMPP is "good enough", or at least the best choice. Having an opinion doesn't make me biased against one or the other.
- tcfhgj 2y ago> I don't get what you're getting at. Not being paid for the work on something doesn't imply no bias towards it. > Having an opinion doesn't make me biased against one or the other. It might: Confirmation bias
- Arathorn 2y agoRealising the irony of commenting on this given the sibling, but for the sake of accuracy: > with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server. This is not true. By default most Matrix implementations sync the last 20 messages in a room when a server joins that room, pulling in other messages only on demand if a user back-paginates the room. Room state (i.e. key-value metadata about the room) also no longer gets synced in atomically at join - instead it gets pulled in in the background (so-called 'faster joins': https://element-hq.github.io/synapse/latest/development/synapse_architecture/faster_joins.html https://element-hq.github.io/synapse/latest/development/syna...).
- SamWhited 2y agoPartial graph sync is a thing, yes, but the graph still has to exist on both servers and expand as users request more of it, so the same analysis applies. But fair, maybe I should have pointed out that full sync is the worst case.