3 ms·
Ah ok. I'm indeed on matrix.org, I did check if there's presence before posting that comment, and didn't see any. I do keep wondering though what's the deal wi
by grishka 5y ago
Ah ok. I'm indeed on matrix.org, I did check if there's presence before posting that comment, and didn't see any.
I do keep wondering though what's the deal with the performance of the Matrix protocol. From reading the overview in the spec, it doesn't feel like there's anything that could have a significant performance cost. It's essentially a standardized but extensible REST API that passes JSON objects over HTTP. Is it that the existing server implementations aren't optimized very well?
- Arathorn 5y agoIt used to be that Synapse (the server) hadn’t been optimised much, but we have been going through doing so. Presence just hasn’t come to the top of the list yet as we think there are more important features to prioritise. The reason there is stuff to optimise is that Matrix passes JSON around over HTTP in a byzantine fault tolerant manner: every time you send an event you have to sign it and justify why you’re allowed to send it, and every time you receive one you need to execute that proof effectively and do a merge resolution algorithm to authenticate the event and store it in the right context - very similar to how Git works, but with events rather than commits. A naive implementation of this can be very heavy. We’ve improved it by 3-4x over the last year or so, and there are other big algorithmic improvements in general on the horizon too.