If the choice is between xmpp and matrix it's a no-brainer to be honest.
I was a matrix node operator for a while, because I love operating all sorts of decentralized stuff for people in my free time. In short, my findings were that the server implementations are not ready for critical production, like the IETF for example.
The choice of server implementation is super important because it locks you into a certain SQL structure and possibly even a certain password hashing.
So back then I obviously went with synapse because the others were not even nearly ready. But at the same time matrix.org is struggling under a new wave of sign-ups. And they're still struggling. I still see messages on boards and IRC like "why is my client just hanging when I join a room", likely because people in that room are federating with Matrix.org and it's super slow.
So that wasn't a good impression of synapse right off the bat. It being the first reference implementation in Python I figured it just wasn't good at scaling. I would need more k8s resources to scale it than I would an implementation in Rust or Golang.
So now I'm waiting for dendrite or one of the other ones to become fully featured with group messages, encryption and all that until I re-launch my matrix instance.
I also won't launch it without a proper implementation for account approval, or invites, either one I make myself or someone else publishes one before that.
AND even if one of the faster implementations is ready, you still have to take into account the client app support for platforms like iOS and Android.
I agree. Matrix isn't quite ready for its prime time, but it's getting there. Synapse is getting more efficient with every update, and the spec is doing so as well.
For example, they recently released the new sync API, which makes joining a room almost instant.
I'm really looking forward to low-bandwidth Matrix as well, which is going to improve performance by a lot.
Client compatibility seems pretty good overall, with Element and Fluffychat available to almost everyone.
In my eyes, the biggest weak point for Matrix as an IM protocol is that there's no business model for server providers.
I was a matrix node operator for a while, because I love operating all sorts of decentralized stuff for people in my free time. In short, my findings were that the server implementations are not ready for critical production, like the IETF for example.
The choice of server implementation is super important because it locks you into a certain SQL structure and possibly even a certain password hashing.
So back then I obviously went with synapse because the others were not even nearly ready. But at the same time matrix.org is struggling under a new wave of sign-ups. And they're still struggling. I still see messages on boards and IRC like "why is my client just hanging when I join a room", likely because people in that room are federating with Matrix.org and it's super slow.
So that wasn't a good impression of synapse right off the bat. It being the first reference implementation in Python I figured it just wasn't good at scaling. I would need more k8s resources to scale it than I would an implementation in Rust or Golang.
So now I'm waiting for dendrite or one of the other ones to become fully featured with group messages, encryption and all that until I re-launch my matrix instance.
I also won't launch it without a proper implementation for account approval, or invites, either one I make myself or someone else publishes one before that.
AND even if one of the faster implementations is ready, you still have to take into account the client app support for platforms like iOS and Android.