top | item 21835749

Synchronous Messaging at Mozilla: The Decision

541 points| gsnedders | 6 years ago |discourse.mozilla.org

246 comments

order
[+] kibwen|6 years ago|reply
I'm pleasantly surprised! They took the route of "promising but underdeveloped technology" rather than settling for a well-developed solution that compromises their principles (which, frankly, I wouldn't have faulted them for; at the end of the day you still have to get work done). With luck maybe we'll see Mozilla contribute to Matrix? There is, after all, an implementation written in Rust: https://github.com/ruma
[+] est31|6 years ago|reply
The last ruma commit was in August, which was after a long period where nothing happened at all. Is the project dead?
[+] lousken|6 years ago|reply
So after testing matrix and riot with friends for a couple of months, there're still a ton of work to be done. We all used the most common setup - matrix.org homeserver, riot and riotX as apps. (Also please don't point me to dev version, I am only considering what's in stable.) Random stuff not in particular order:

1a) e2e is a choice that affects experience in riot, a lot - you can't use search, you don't see recent images/files ...

1b) you have to verify each others devices, N:M; although they're working on a change

2) I hoped that riotX will be a lot better at the end of this year, but there're still lots of bugs, messages get stuck at the bottom, mobile - mobile e2e can't be decrypted sometimes, you have to have another device online; and you can't even zoom in or save an image that's sent to you which is infuriating

3) matrix.org homeserver performance, although a lot better now is still sometimes utterly slow

4) riot is still missing crucial functions like copy entire message, online status, jump to date, and lacking any good notification system(the current one is really simple/stupid) and you can't even enable notifications without sound e.g.

4) also it's still lacking custom emote support although many ppl asked, there's no option to pin/save messages...

[+] Arathorn|6 years ago|reply
1a/1b and 2 is where all our work is going currently. We're trying to get E2E on by default in Jan, and likewise exit beta for RiotX/Android around the same time. We're going as fast as we can.

3: Matrix.org homeserver performance should be absolutely fine now. Delays when doing things like joining big rooms are unrelated to the hardware, but perf optimisations we need to do to synapse in general. They're on the radar.

4: This is literally the first time i've heard an ask for 'copy entire message'. The other features exist in labs, and yes, we need to fix notifs and add custom emoji. "Many people asking" doesn't magically produce features unfortunately, especially when we are battling points 1 & 2. Contributions help though. Thanks for testing though.

[+] phre4k|6 years ago|reply
2) could be partially solved by backing up all of your keys from all devices. After that, non-decryptable messages decreased about 95%.

Ironically, backing up your keys is done by recovering your keys from a backup – Settings → Cryptography Keys Management → Encrypted Messages Recovery → Restore from backup.

(Web version: Settings → Security and Privacy → Key Backup → Restore from Backup)

You can verify that you set it up properly by checking if the backups are signed by all your currently used devices (and possibly old ones, too).

3) can be mitigated by using workers. You'll need a beefy server, but message transfer and synchronisation will be super fast.

The other things you mentioned are works in progress and I think the progress is outlined pretty transparently on Github, even if some people disagree with how the Matrix team is handling things.

[+] jasonzemos|6 years ago|reply
This is really good news. I have only one question for Mozilla: why choose a solution whose hallmark is decentralization and the libre model- only to become a customer of a centralized host (modular.im). Why can't Mozilla actually federate? That's a step backward from your IRCd in my opinion.

I hope Mozilla gets onboard with everyone else running their own Synapse, hacks on it, and pay their dues with patches, rather than with their cash.

[+] basilgohar|6 years ago|reply
They are using a hosted provider, run by the makers of Matrix themselves. This lets them get the benefits of federation while making the hosting someone else's problem.

Of course, we all want to see Mozilla bootstrap their own Matrix instance, but maybe the cost/benefit equation worked out differently for them than we would have expected. I can imagine this lets them replace IRC with a better solution faster while still supporting the development of an open standard by becoming a client of the company that's developing it.

Does this forebode something more sinister? I hope not...

[+] lifty|6 years ago|reply
If Mozilla will use their own domain name they will be free to move their federated Matrix instance wherever they want. Modular.im will only provide the hosting expertise. I expect that in the future self-hosting your own Matrix server instance will become much easier.
[+] floatingatoll|6 years ago|reply
Assuming the purpose of the messaging system selected is to help Mozilla's community work together on Mozilla projects, what benefit of 'decentralization' do you think would improve their ability to work together effectively?
[+] gtirloni|6 years ago|reply
What benefits would Mozilla get from running their own server and federation (that they have with ircd today)?
[+] shantly|6 years ago|reply
Matrix servers are kinda a pain in the ass to get up-and-running and to manage versus, say, XMPP or IRC. Especially if you can't get away with just running someone else's pre-built docker images for it, or whatever.
[+] est31|6 years ago|reply
Can you tell me more about the modular.im behaviour/policy towards federation? Is it explicitly turned off?

Also, IRC has federation too by having multiple servers in a network. IIRC Mozilla hadn't allowed you to do this for moznet did they? So how is this different?

[+] MR4D|6 years ago|reply
Let's hope they do both: Cash + Development.

Might as well ask, right?

[+] jeltz|6 years ago|reply
Nice, given how the discussions were going some months ago I was worried that they would pick some closed source solution like Discord or Slack. I have not used Matrix so I do not know how good it is, but I do not like the lock-in of Discord and Slack.
[+] jordigh|6 years ago|reply
Agreed, this is a huge relief. I was getting quite worried that Mozilla would go to Discord, like Rust and other projects have done. I don't know anything about Matrix, but I know it's free, and if it has Mozilla's endorsement, now I'm actually curious to try it... maybe even via an IRC bridge!
[+] mehhh|6 years ago|reply
Matrix can bridge in IRC, Slack, Gitter and a few other protocols very nicely, it reminds me of Pidgin but with much better UX.
[+] sandGorgon|6 years ago|reply
Congrats to Riot/Matrix.

I'm hoping with Mozilla's backing the product, there's a lot of features that get built out.

There's no reason this cant be a Slack-beating product now.

I'm betting a Rust based homeserver replacing Synapse.

[+] xfalcox|6 years ago|reply
Can't wait for Mozilla to back a stable, native desktop client into a daily driver state so we can finally ditch Mattermost at work.
[+] rtpg|6 years ago|reply
Seriously, I feel like it’s such an indictment on native app tool development that we have a bazillion new electron apps written by ppl all the time for weekend projects yet almost no one spitting out native apps to interface with services.

It’s clearly in demand (if a bit of a niche kind of demand)

[+] bloopernova|6 years ago|reply
Has anyone had experience with both Matrix and Mattermost? What are the main differences between the two?

Apropos of nothing, currently I am running:

  * Signal
    * Wife
    * Family
  * Google Hangouts (web)
    * Friends and ex-coworkers
  * Slack
    * Vendor A
    * Vendor B
    * Team C
    * Team D
  * Keybase
    * Some friends
  * SMS
    * My Stepdaughter
  * Skype
    * Coworkers too stubborn to open Mattermost or change what they do
  * Mattermost
    * Coworkers
    * Various teams and groups
  * Remote Desktop
    * Microsoft Teams
      * My team
      * Client coworkers
      * Other teams at client
    * Microsoft Skype for Business
      * Chats from people who don't use MS Teams
      * Meetings
  * Gitter
    * Spacemacs chat
  * IRC (web)
    * Various random channels
Out of all of those, only SMS isn't on my macbook, and I'm sure I could put it on there if I wanted to.
[+] kethinov|6 years ago|reply
Mattermost is currently a better UX with a more stable codebase, but I suspect that the Matrix/Riot federated model will one day overtake Mattermost.

Personally I use Mattermost at work and Matrix/Riot for personal chat. If Matrix/Riot began to overtake Mattermost in terms of UX, we would probably replace Mattermost with Matrix/Riot at work.

[+] ajxs|6 years ago|reply
You've just described my nightmare scenario. I'm currently experiencing "Messaging app fatigue" and I'm not using even a quarter of the apps that you are.
[+] __d|6 years ago|reply
My list isn't quite that long, but I'm using Franz to put most of them into a single window (albeit, with many tabs).

Sadly, it doesn't work with iMessage, nor Signal.

I just wish it was a native app, although I appreciate that'd make the effort involved 100x more.

[+] pabs3|6 years ago|reply
I really wish Telepathy took off, then you could have one single app that speaks each of those protocols and talks to the relevant servers.

https://telepathy.freedesktop.org/

[+] jeltz|6 years ago|reply
I use SMS, Slack, Discord, Skype, IRC, Google Hangouts, Facebook Messenger and WhatsApp, so you have me beat by 3. :) It would be amazing of Matrix and its bridges got good enough so I could reduce this number a bit.
[+] johnchristopher|6 years ago|reply
This screenshot https://discourse-prod-uploads-81679984178418.s3.dualstack.u... shows a UI that seems way wore easier to grip than the riot UI. I remember screenshots https://img.bfmtv.com/c/840/625/06e8/68cd7316f6a279a3899fcf8... http://www.tchap.fr/wp-content/uploads/2019/05/interface-tch... of the client used set up by the France efforts.

Are those clients ever going to be released to the general public ?

[+] Arathorn|6 years ago|reply
the first image is Riot circa 2015 (back when it was called Vector). You can run it if you really want from https://riots.im.

Tchap meanwhile is opensource at https://github.com/dinsic-pim and there are unofficial builds which let you use it as a general purpose Matrix client.

However, we're busy improving Riot's UX in general to make it easier to grip - on Mobile that ends up being a rewrite (RiotX), on Web we're iterating incrementally.

[+] driminicus|6 years ago|reply
Congrats to Mozilla and matrix.org! I am at least very happy they went with a FOSS solution.
[+] superkuh|6 years ago|reply
> effectively using Matrix as a big decentralised IRC bouncer in the sky.

No. In theory it is, but in practice it's a big centralized IRC bouncer in the sky where everyone is reliant on riot.im servers.

[+] Arathorn|6 years ago|reply
Not really: anyone can run an IRC bridge, and many people do. The #mozilla_#wherever:matrix.org namespace is the preexisting moznet bridge run by Matrix.org (not Riot.im), but anyone with their own server could also run their own bridge, much like they could run their own bouncer today. There is then additional decentralisation from the fact that the room history is replicated throughout all the participating Matrix servers.
[+] jokoon|6 years ago|reply
I'm curious, what's wrong with IRC? Is it too old? Too difficult to monitor and moderate? Too easy to spam? I don't understand.

I've never really understood why mozilla chose their own servers and not freenode. I've never really grasped the whole history of enet vs freenode either.

[+] jeltz|6 years ago|reply
Mozilla has said they thought it was too difficult to monitor and moderate. Could that have been solved by moving to Freenode? Probably, but there are other issues with IRC.

Having to run your own IRC bouncer increases the barrier of entry, as does nickserv based auth. Modern people also expect to be able to seamlessly post images, large code examples, files, etc. Some people also want support for threaded conversations. None of this is offered by the typical IRC setup which Mozilla probably thinks that it scares away users. I do not think Matrix solves all of these yet, but it solves some of them.

[+] alkonaut|6 years ago|reply
How is the feature parity with newer alternatives? Can I share my screen with someone easily? Can I post a screenshot? Can I be sure every client shows the screenshot properly? Will it handle an animated screenshot?

I wouldn’t want to use one tool for typing text and another for calling a third for sharing files and a fourth for sharing a screen and so on.

For example: Sharing an image as a link isn’t really an acceptable UX these days I think.

[+] stjohnswarts|6 years ago|reply
A lot of younger developers consider IRC limited and crusty. They are more easily attracted to platforms they've grown used to that behave similar to discord, teams, and slack.
[+] bsder|6 years ago|reply
> I'm curious, what's wrong with IRC?

It seems that the most significant complaint is bad mobile experience.

[+] davidw|6 years ago|reply
Is there a low-friction way to give Matrix a try? Like a Hacker News channel that you can join with a web client or something?
[+] wildduck|6 years ago|reply
Any one knows the progress of dendrite? Have not used matrix/riot for a while. It was too heavy to run awhile back. Hopefully they make the client and server more light weight.
[+] sandGorgon|6 years ago|reply
Are you guys planning "private communities" usecases ?

When I last evaluated Riot, it was vehemently public...so Slack/Mattermost like usecases were very hard to do.

Ideally a private community should be possible, where users invited to that community have access to all channels. however within the community, I should have private channels restricted to only few invited users.

I was told that the only possible way to do this was make all channels of a community private ..and when adding a new user, you should explicitly invite to every single one of the channels. This is not viable for an org.

I really hope this has changed.

[+] dstaley|6 years ago|reply
I really hope this means more development and focus on building great mobile apps for Matrix. For the past four months the Riot Android app has had this bug where login state expires after a day and the app gets stuck in an infinite loop trying to refresh the token. Supposedly a fix was merged [1], but after four months of not being able to use Riot (and thus Matrix) my friend group has fallen back to Discord.

[1] https://github.com/vector-im/riot-android/issues/3249

[+] nickstinemates|6 years ago|reply
Are there any other projects using this setup? Also, any write up on the compelling reasons to switch? Are they hoping this move will attract more contributors? Article is unclear.
[+] shmerl|6 years ago|reply
Good, but what about Rust project jumping to Discord instead? They should have used Matrix as well.