fabio,
@fabio@manganiello.social avatar

I wish that (and ) were better designed.

It has become among the most popular open messaging protocols, but it remains a scalability nightmare.

It's literally the Blockchain of messaging. Its current state is given by the sum of the whole chain of events received since t=0. It's a brittle append-only ledger, and any modifications you do to it are very likely to break it.

Do you have a huge 100GB database and you want to clean up old stuff? Sorry, you can't. There are some non-official solutions for compacting the events, but they're all likely to break your db - and none worked so far in my case.

Do you have users on your instance that entered a busy room on matrix.org? Then you'll get all the join/leave events of that busy room on your db, with no way of deleting them, and nothing to do unless your users exit those rooms.

Did you start your instance by toying with the default SQLite backend, and now that it's become big you want to move to Postgres? Sorry, no official guides provided, only unofficial procedures scattered across a bunch of blogs.

Do you want to change the name of your server? Sorry, you can't. All the events are tightly coupled to your server name. The advised solution is to simply start a new instance.

Such a rigid and brittle implementation shouldn't have become an open de facto standard without much questioning about its poor design decisions.

At the very least, some official tools must be provided to enable admins to compact events. If the size of the database is guaranteed to increase indefinitely, then entry barriers against self-hosting are only going to increase.

matrix,
@matrix@mastodon.matrix.org avatar

@fabio there's a lot of confusion here.

Matrix is deliberately designed to NOT require all events since t=0. It requires the key-value events (i.e. state events) for the room, but not the actual messages. In turn, room DAGs can and are split into partitions called 'chunks' whenever there's a gap in federation.

So yes, you can't go and manually edit the DAG, any more than you can manually edit commits in a git repository. But you can absolutely purge old data (https://element-hq.github.io/synapse/latest/admin_api/purge_history_api.html) and...

matrix,
@matrix@mastodon.matrix.org avatar

@fabio ...you can compress old state events via https://github.com/matrix-org/rust-synapse-compress-state (which is stable, and should be merged into Synapse).

Similarly, as others have said, synapse_port_db for sqlite->postgres should absolutely work (if not, it's a bug. there have been some in the past, but as far as we know it works currently).

Finally, account portability is in progress (https://github.com/devonh/matrix-spec-proposals/blob/cryptoIDs/proposals/4080-cryptographic-identities.md), but needs funding to complete.

So while we're definitely not perfect, we're not quite that shit either.

tyil,

@fabio The further goes the more obvious it becomes we should've stuck to . The developer time wasted on Matrix is immense, imagine if that effort would've been stuck into making a nice XMPP server implementation that plays well with or , with all the basic features people desire baked in by default. They would've had time to spare on a nice client if they felt this was needed to make a nice complete package to market.

chuck,
@chuck@linuxlab.sh avatar

@tyil @fabio 👋 Hi I stumbled across this thread, but felt like I could slide in a little plug for snikket, maybe?

These folks took prosody and made a really nice package for folks to get started with their own XMPP server (and client offerings) that offer an extremely good out of the box experience. (A rating on the conversations.im auditor too)

https://snikket.org/

As a former admin of both prosody and synapse, this takes the cake for me. Low maintenance, low mental overhead.

tyil,

@chuck @fabio @Menel

Don't think I heard of yet, I should check it out. When I set up again I want it to run on my Kubernetes cluster, since that's where most things already live anyway. I also want to be able to have bridges to other platforms that I use, such as and (sadly) , so I can have one good client for all my chat again, like we had back in the Ol' Days.

fabio,
@fabio@manganiello.social avatar

@tyil @chuck @Menel I’ve been running my personal XMPP server for a while on one of my Arch servers. I’ve followed little more than the Arch wiki page for Prosody and done some extra DNS tweaking, everything worked almost out of the box.

The main thing that keeps me invested in my Synapse server is the insane amount of bridges available for Matrix. Actually, bridges are like 90% of my Matrix use-case. I used to use bitlbee to port everything over IRC earlier, but too many plugins started breaking, too many former libpurple integrations have fallen unmaintained/undocumented, and Matrix gave me everything I lost by abandoning bitlbee and much more.

If only I could have WhatsApp, Messenger, Telegram, Signal, LinkedIn, Instagram, IRC, Slack, Google Chat, SMS, etc. all bridged over XMPP, as it is currently possible for me to do with Matrix, and also have only one app installed on my phone for all those services, rather than N (thanks to Element), and also not have to worry of discrepancies between different client+server implementations, I’d definitely drop my fat Synapse server, free up 2GB of RAM and 100GB of disk, maybe replace it with a thin personal Conduit/Dentrite server only to host the Platypush channel, and move everything else to Prosody.

XMPP is the way we were supposed to go from the very beginning, but it went through too many hiccups through in the past 15 years. Eventually, the success of a messaging protocol in these years is done by the number of integrations that you have and the ecosystem that you manage to build around it. That’s IMHO where Matrix won, and too many of us ended up flirting with a technology that is basically Blockchain but for messaging…

Menel,
@Menel@nerdculture.de avatar

@fabio
I don't see many implementations of matrix. There are more server and clients for xmpp then matrix, there is basically only one stable server for matrix, by the company that made the protocol... And matrix can't still claim its just because it is so new... The years flew past.
Now you have the same situation as with every federated protocol, it has to slow down, or you can't have independent, working implementations, or move fast and be just the protocol of one company.
@tyil @chuck

Menel,
@Menel@nerdculture.de avatar

@fabio
Meanwhile xmpp wasn't as fast to jump on mobile, but some years later it had new xeps, for mobile, and new clients. And I'm sure, if a micro fraction of the money that was dumped on matrix had found its way to xmpp, that could have been even faster.
Also I doubt matrix bering bigger, it may have more public rooms hosted. Total server and user count is doubtful.
Most of the feeling of matrix beein big is PR money and projects hosting rooms at matrix.org
@tyil @chuck

debacle,
@debacle@framapiaf.org avatar

@fabio @tyil @chuck @Menel

Bridging to other protocols:

See by @nicoco for Signal, Whatsapp, Telegram, Discord, Mattermost, Steam, Skype, Facebook and Matrix. (Work in progress, but promising!)

See for IRC. Very stable.

See by @goffi for ActivityPub. (Again, work in progress.)

See for MSN and Yahoo (maybe more).

See by @pantierra and myself for SMS.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Matrix
  • khanakhh
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • osvaldo12
  • mdbf
  • Youngstown
  • cisconetworking
  • slotface
  • rosin
  • thenastyranch
  • ngwrru68w68
  • kavyap
  • ethstaker
  • JUstTest
  • tacticalgear
  • modclub
  • cubers
  • Leos
  • everett
  • GTA5RPClips
  • Durango
  • anitta
  • normalnudes
  • provamag3
  • tester
  • megavids
  • lostlight
  • All magazines