@f0x @kaniini that xmpp is a bad design?
XML is pretty heavy and expensive to decode compared to other serialisation protocols. Additionally, the idea of XEPs was a pretty bad idea, as it meant that important features had to be painted in after earlier parts were set in stone, often at the expense of better whole-system design.
XEPs were also variously implemented with overlapping but incomplete sets between major clients and servers, and implemented in frequently incompatible manners, despite appearing being correct.
The long and the short is that the org I worked with, in the end, just had to say "we use OpenFire and Pidgin, nothing else will be supported".
But at least it was designed.
@f0x Matrix is chasing growth over stability or design. Most design decisions happen off the cuff as needed rather than being planned before hand from a whole-system point of view.
Because of this, Matrix developers have painted themselves into corners over how they need to implement important features because of previous mistakes, Synapse groans under it's own weight and is famously difficult to set up and administrate.
Third party HS don't really exist because keeping parity with such a casually thrown together "reference" implementation is a massive pita, and the written docs aren't worth the paper.
Operationally, this shows: the appservice api has massive holes, and doesn't integrate well with most other services. The primary form of maintenance is just "restart a bridge with 20k users" (which in early days would lead to storms of restarts because it turns out naively reconnecting 20k users is a pain). Matrix.org can barely stay operational and has turned off flagship features to remain performant. The federated network is unhealthy because operating your own HS is hard, and Matrix.org, chasing growth, do not encourage people to register elsewhere.
It's all a bit of a cluster tbh.