1. 13
  1.  

  2. 15

    It’s not worth it. I gave Matrix/Riot 2 years to become usable: fix performance, fix resource usage, behave like modern tech they are claiming to replace. It was not worth the effort.

    10 years of IRC logs from irssi: 500MB of disk space 2 years of moderate Matrix/Riot usage (with IRC bridges which I ran myself): 12GB Postgres database

    Insane. This tech is dead on arrival in my opinion.

    1. 2

      At least when XMPP works, it works well; provided you aren’t getting screwed over by server/client inconsistency in support. When Matrix works, it’s slow as a dog, client and server. (Not to mention New Vector seems a bit…. fucky when it comes to competition in homeservers.)

      1. 3

        Yeah, XMPP’s weakness are the XEPs and the inconsistent implementation. It should have all been one consolidated protocol, but then it might not have had adoption due to complexity. sigh

      2. 2

        I’ll be honest, I looked into contributing to Dendrite (the Golang successor) but found the codebase a mess (and it uses gb, which is not the way the community as a whole has been moving for years, but that’s more of a personal preference I guess). Maybe they’ll get their act together but for now I’m going to pass.

        1. 1

          Thats a very odd thing to have an issue with. 12gb is fairly minor in todays terms. If you take a look at the source for a message in matrix you will see they each contain a whole lot more info than an IRC messsage such as the origin server, message type, event ID, room id and a whole lot more. Also riot supports inline media which on it’s own would take up 12GB with some moderate usage.

          Matrix doesn’t aim to be a 1:1 copy of IRC, It supports a whole lot more features that users expect of modern software and that necessarily means more resource usage.

          1. 4

            The media is not stored in the Postgres database.

            The software is slow. It should never have been written in Python, because they’re affected by the GIL. The database is poorly optimized and has lots of issues that require manual intervention like this: https://github.com/matrix-org/synapse/issues/1760

            The best summary I can provide is this quote, “[The problem with Matrix ] has everything to do with synapse, bad signature design (canonicalized json vs http sigs) and an overall terrible agent model.”

            1. 4

              12GB Postgres database means poor performance unless you have good hardware. Try running it on an Rpi or a Scaleway C1. You’re not going to have a usable experience. Even a Digital Ocean $5/mo droplet won’t be usable.

              Not everyone has a Dual Xeon with 64GB of RAM colocated. I do. It was even awful on that.

              1. 3

                I previously ran every application I made on crappy hardware to make sure it wasnt overbloated. If it worked there, probably be great on newer boxes. Seeing the $5 droplets mentioned all the time makes me think they might be a nice, new baseline. What you think since you mentioned them?

              2. 2

                Quassel manages to store all the same data, also in a PostgreSQL database, in much less than 12GB. If you add fulltext search, it still won’t be even close.

                The problem is that Matrix as a project just has a lot of things left to fix, my current favorite is their “database” backend on Android

                Matrix could be great, if they actually drop HTTP Longpolling, actually finish a native socket implementation, actually finish their Rust server implementation, replace their serialization format with a more efficient one, and so on, and so on.

                In a few years Matrix may become great – for today, it isn’t there yet.

                Disclaimer: I’m personally involved with IRC, and develop Quasseldroid, a client for the Quassel bouncer.

                1. 1

                  finish their Rust server implementation

                  You mean in go.

                  I am backing the project on Patreon. Right now, I have completely replaced both XMPP and Messenger and I surely hope that it will improve over time.

                  1. 1

                    Oh, it ended up being go? Last I heard about it, someone was rewriting the server in Rust. Was that abandoned?

                    1. 1

                      In don’t really know as I’ve started using the project only recently.

              3. 1

                Thanks for your feedback. I am yet to use it extensively so I cannot comment on the performance issues as of now.

              4. 6

                I’ve been using Riot for about 2 years now. It shows promise, but has some teething issues:

                • Initial implementation in Python is a resource hog. There’s an official effort to reimplement in golang, but it seems like the team’s time is mostly spent keeping the existing infrastructure running.
                • E2E key validation is pretty bad. Every device has to verify every other device. As a result, no-one checks the authenticity of devices because it takes too long.
                1. 1
                  E2E key validation is pretty bad. Every device has to verify every other device. As a result, no-one checks the authenticity of devices because it takes too long.
                  

                  You can just ignore this and press send anyway which makes it as secure as every other E2E service because manually checking everyones key is way too much work.

                  1. 2

                    That’s the equivalent of adding a local exception when hitting a HTTPS website whose key is bogus.

                    So yes, you’d get encryption, but not authentication. The recipient may not be who she/he says she is.

                    1. 2

                      I don’t think any of the other IM services have solved multi device E2E either but I seem to remember there being some work on when you sign in on another device you get a popup on your existing device asking if it’s yours and sharing the key.

                      1. 2

                        That (or something similar) is what they’ve said they are aiming for I think. A change I welcome!

                        1. 1

                          Keybase has an IM solution (the client is pretty bad) that supports multi device E2E.

                    2. 1

                      E2E key validation is pretty bad. Every device has to verify every other device. As a result, no-one checks the authenticity of devices because it takes too long.

                      This sucks a lot, yeah. Especially with people using throwaway browser sessions.

                    3. 2

                      I’m a fan of matrix/riot, but this wasn’t a very well written piece. Yes, the python homeserver (synapse) is a resource hog, but there’s a plan for improvement. Overall matrix hasn’t advanced much in the past almost year, but is not picking up steam as they’ve received funding and are growing the team.

                      1. 1

                        Overall matrix hasn’t advanced much in the past almost year

                        Recently the main efforts have been in speeding it up and polishing things and you can really see it paying off when the main homeserver is faster now than it was 8 months ago despite handling a much larger load.

                      2. 2

                        Bit late to the party, but I’m in an IRC channel where a good portion of people have been using Riot due to an available bridge and seem pretty happy. Whereas I only see the problem of constant “hey, can you read me, I don’t see your messages” or the 12h lag which totally emulates videoconferencing. Might be better on mobile if you’re on the run like on a conf (where we tried everything from IRC to Hangouts Chat to Signal.. I think Signal was best so far to keep ~10 people synced over the weekend…)

                        1. 1

                          Matrix is not distributed, it’s federated. We already have good federated protocols.

                          1. 2

                            Care to name your favorites?

                            1. 2

                              In this space, SMTP and XMPP (both of which I use daily more than any other protocol) but also OStatus and newer social web stuff.

                              1. 1

                                XMPP is broken for mobile (nobody bothers with the right XEPs) and does not feature a first-class MUC.

                                1. 1

                                  I use XMPP for both person-to-person and MUC from mobile all day every day. So do most of my contacts :)