Pretty bad experience with matrix here. Many users have issues with decrypting messages or having some conversations unable to open. Sometimes we have to disable the encryption, and in some case it don’t work either. In all cases, we couldn’t find too old messages. Usually you have to balance between safety and archives; both are unreliable. Migrating a community to a specific protocol is not something you could repeat a lot.
I don’t know if it’s related with the servers, or with the protocol itself. I suspect that things get ugly when your conversations are too big, but it could be the latency between servers, or lack of ressources from server side. If so, you have consider to selfhost a matrix server, or to consider it as not federated, and use the server matrix.org like everyone (which seems to work fine).
We used C++ based software. Who need sanity ? Clearly overrated