WEBVTT

00:00.000 --> 00:16.000
If you're not coming, and if you can take, try to follow up on several of you and take the chance to give it a drop to all of you.

00:16.000 --> 00:20.000
It should be related to me.

00:20.000 --> 00:30.000
If someone wants to give a talk about something you want to share.

00:31.000 --> 00:37.000
There's something I would like to know about.

00:37.000 --> 00:46.000
Maybe we've over the question, make a choice and capture it with the microphone.

00:46.000 --> 00:50.000
Okay, so I want to talk a bit about what I'm going to do tomorrow.

00:50.000 --> 00:56.000
Since I'm in three years, since three years, more or less now in the matrix community or matrix ecosystem.

00:56.000 --> 01:03.000
And I'm not that deep tech guy. I'm more interested in social things.

01:03.000 --> 01:07.000
I started to organize a couple of things like the matrix community summit.

01:07.000 --> 01:09.000
I'm some matrix meetup in Berlin.

01:09.000 --> 01:15.000
And the newest thing we did just last year as a prototype was the matrix retreat.

01:15.000 --> 01:25.000
Where 10 people which work in different projects companies in the matrix ecosystem spend some time in a place in Austria in Kremsk, close to Vienna.

01:25.000 --> 01:28.000
And they did their usual remote work there.

01:28.000 --> 01:34.000
But then they shared some time and within that time work together on matrix related stuff.

01:34.000 --> 01:37.000
But also on other funny, naughty things.

01:37.000 --> 01:41.000
And I really felt in love with this kind of working atmosphere.

01:41.000 --> 01:44.000
So now I'm going to organize more of them.

01:44.000 --> 01:52.000
And one of them is starting tomorrow because we will go to Thailand and have four weeks matrix retreat in Thailand.

01:52.000 --> 01:54.000
So if you're interested in something like that.

01:54.000 --> 01:58.000
For matrix, then check matrix this week in matrix.

01:58.000 --> 02:03.000
Or check out a vocation, nation, data and often.

02:03.000 --> 02:05.000
There we organize also something.

02:05.000 --> 02:11.000
Or we try to organize something like that for other communities like KDE or norm or maybe others.

02:11.000 --> 02:13.000
That was my announcement.

02:13.000 --> 02:17.000
I could try to do Gabriel's talk.

02:17.000 --> 02:20.000
And I basically know what he would say.

02:20.000 --> 02:22.000
And so on the basis.

02:22.000 --> 02:27.240
So on the basis that I've seen that people are here because they were hoping to hear about how rocket

02:27.240 --> 02:29.000
chap works with matrix.

02:29.000 --> 02:32.000
As opposed to an AMA or whatever.

02:32.000 --> 02:40.000
But I can at least give some overview of bridging and interoperability and where things are out.

02:40.000 --> 02:49.000
So being going since 2016 originally made me to your best kind of flagship app.

02:49.000 --> 02:53.000
For the Meteor community and the JavaScript ecosystem.

02:53.000 --> 02:57.000
Where the whole stick is at your right and app in JavaScript on the front end.

02:57.000 --> 03:00.000
And you do the server code in the front end too.

03:00.000 --> 03:06.000
So you basically have the server as a magic thing that goes and connects to

03:06.000 --> 03:08.000
Gabriel clients and you can focus on the front end.

03:08.000 --> 03:11.000
So I believe that's where rocket chap came from.

03:11.000 --> 03:15.000
And so if people have used it, it's really nice product.

03:15.000 --> 03:17.000
It's a great swim web app.

03:17.000 --> 03:20.000
And I believe it's got native mobile apps as well too.

03:20.000 --> 03:23.000
Lots of communities have used it over the years.

03:23.000 --> 03:26.000
I know the blender used to use it for a while.

03:26.000 --> 03:31.000
I think that rocket chap is a company as similar challenges to the average element has.

03:31.000 --> 03:35.000
In terms of getting very popular with governments and then discovering that.

03:35.000 --> 03:40.000
Large organizations somehow forget from the people writing the software.

03:40.000 --> 03:42.000
And so that might be why he's not here today.

03:42.000 --> 03:50.000
But a few years ago, I guess I first met him probably four or five years ago.

03:50.000 --> 03:52.000
First of all, I think, first time.

03:52.000 --> 03:55.000
And he had a geek out about how rocket chap was going.

03:55.000 --> 03:58.000
And how they should absolutely start talking matrix to.

03:58.000 --> 04:01.000
And years as a common language.

04:01.000 --> 04:04.000
As a way to basically add a feature on.

04:04.000 --> 04:08.000
Because I think they had just on their own Federation,

04:08.000 --> 04:13.000
which was a very, very basic setup where you put SRV, DNS records.

04:13.000 --> 04:17.000
And that would allow the servers to basically just pass messages.

04:17.000 --> 04:19.000
We're between each other.

04:19.000 --> 04:20.000
Didn't have.

04:20.000 --> 04:24.000
It also had end-twent encryption using a shared secret.

04:24.000 --> 04:26.000
So no perfect forward secrecy.

04:26.000 --> 04:30.000
If somebody uses a password basically to secure the contents of the room.

04:30.000 --> 04:34.000
And if that password leaks, then the entire history of the room goes.

04:34.000 --> 04:36.000
And the Federation was basically proprietary.

04:36.000 --> 04:39.000
So then it's a closed API that they had.

04:39.000 --> 04:43.000
So I said, hey, rather than doing custom Federation,

04:43.000 --> 04:46.000
you should actually talk a common language.

04:46.000 --> 04:49.000
And then you'll be able to bridge free to element via this as well.

04:49.000 --> 04:51.000
And all the other matrix plans.

04:51.000 --> 04:54.000
And you can be a part of our strange matrix code.

04:54.000 --> 04:56.000
Amazingly, he didn't say no.

04:56.000 --> 05:01.000
And he said, actually, this might have some merit to it.

05:01.000 --> 05:05.000
And I can see some of our government customers are really liking this matrix stuff.

05:05.000 --> 05:07.000
Perhaps we should have a look at this.

05:07.000 --> 05:09.000
And interesting what he did at first.

05:09.000 --> 05:15.000
I think was in Google, similar to code 2016, go and do a JSON project

05:15.000 --> 05:19.000
to try to add matrix to Rocket Chat.

05:19.000 --> 05:24.000
And I recommend that the way to do this might be to start off with a bridge.

05:24.000 --> 05:27.000
But you would take the existing materials server, which is backed by MongoDB.

05:27.000 --> 05:29.000
You write a really simple bridge that we go.

05:29.000 --> 05:33.000
And basically copy and paste the messages from Rocket Chat

05:33.000 --> 05:36.000
into a synapse that we would set alongside it.

05:36.000 --> 05:40.000
And the synapse would then bust you out into the great wide matrix.

05:40.000 --> 05:42.000
Beyond it.

05:42.000 --> 05:47.000
I guess he was worried about the hassle of running two servers,

05:47.000 --> 05:49.000
which is something that comes up a lot.

05:49.000 --> 05:52.000
If you're already running a meteor server for Rocket Chat,

05:52.000 --> 05:57.000
do you really want the complication of running a whole bunch of Python alongside

05:57.000 --> 06:00.000
using Postgres when Rocket Chat has already got Mongo,

06:00.000 --> 06:02.000
it doesn't fit very nicely.

06:02.000 --> 06:06.000
And so for the first thing that they tried to do was to take

06:06.000 --> 06:10.000
the Federation Library from Dendrite, go matrix server

06:10.000 --> 06:13.000
lib, and port it, line by line, into time scripts.

06:13.000 --> 06:16.000
Which is quite a bullsey thing to do.

06:16.000 --> 06:19.000
Particularly as Dendrite was pretty alpha at that point,

06:19.000 --> 06:23.000
because again 2017, probably also by this point.

06:23.000 --> 06:27.000
And I think it's worth to say that it was an experiment in the Portuguese

06:27.000 --> 06:29.000
or the Portuguese students might have been a little out of their depth

06:29.000 --> 06:32.000
and the enthusiasm of doing this.

06:32.000 --> 06:34.000
But I think it's still out there.

06:34.000 --> 06:37.000
I'll get some way that I don't think I ever went to production.

06:37.000 --> 06:41.000
So that was the kind of first attempt to join matrix.

06:41.000 --> 06:45.000
Then a couple of years later, it cannot forget.

06:45.000 --> 06:48.000
Thanks to our friends in the Swedish government.

06:48.000 --> 06:51.000
Because Sweden is quite food-facing when it comes

06:51.000 --> 06:54.000
to trying to do the right thing for digital sovereignty.

06:54.000 --> 06:57.000
And I think they've done the numbers on what happens

06:57.000 --> 07:02.000
if too many anchors get dragged over their international submarine cables

07:02.000 --> 07:05.000
or other nasty scenarios.

07:05.000 --> 07:09.000
And so seriously, we'll go through how to communicate

07:09.000 --> 07:13.000
and how to avoid being operationally dependent on the US and SAS

07:13.000 --> 07:15.000
companies in the US for cons.

07:15.000 --> 07:20.000
And they also have a unit of the government called E-SAM

07:21.000 --> 07:24.000
who's full name, I cannot pronounce or remember.

07:24.000 --> 07:28.000
And they are responsible amongst other things for interoperability

07:28.000 --> 07:31.000
and kind of best practices for government things like procurement.

07:31.000 --> 07:36.000
And so what E-SAM saw was the different ministers in Sweden

07:36.000 --> 07:40.000
were picking completely different sovereign channels.

07:40.000 --> 07:43.000
So you had a bunch of people who were running rocket chat,

07:43.000 --> 07:45.000
a bunch of people running matter most,

07:45.000 --> 07:48.000
and a whole bunch of other people running matrix-based solutions.

07:48.000 --> 07:51.000
And so in a very collaborative Swedish manner,

07:51.000 --> 07:55.000
what they did is to invite all the CEOs for these companies

07:55.000 --> 07:57.000
on to a video conference and said,

07:57.000 --> 08:01.000
right, what we want is for you to speak the same thing.

08:01.000 --> 08:03.000
We don't want to be vendor-locks or element

08:03.000 --> 08:05.000
or we're all matters to rocket chat or whatever.

08:05.000 --> 08:07.000
We want to be able to buy whoever we want,

08:07.000 --> 08:10.000
but we also want to talk to each other, go fight.

08:10.000 --> 08:12.000
And it was a really fun call.

08:12.000 --> 08:15.000
I think it's the only time that basically all the competitors

08:15.000 --> 08:20.000
had to be in the same place and told to justify what they're doing.

08:20.000 --> 08:26.000
So the outcome of that is it was all very diplomatic and political,

08:26.000 --> 08:27.000
as you mentioned.

08:27.000 --> 08:29.000
And all the CEOs basically said,

08:29.000 --> 08:30.000
yes, yes, absolutely.

08:30.000 --> 08:32.000
We obviously want to do the right thing and say yes to the government

08:32.000 --> 08:33.000
to make this happen.

08:33.000 --> 08:35.000
And yes, I can see the benefits of doing this.

08:35.000 --> 08:38.000
Obviously, I was quite biased in favor of it

08:38.000 --> 08:40.000
because there was only one solution on the table,

08:40.000 --> 08:42.000
which was matrix as an mechanism to go and link

08:42.000 --> 08:44.000
the different departments together.

08:44.000 --> 08:47.000
But afterwards, I think we've got Gabriel offline

08:47.000 --> 08:51.000
and said, hey, do you want to do this for real?

08:51.000 --> 08:53.000
So yeah, why not?

08:53.000 --> 08:55.000
I mean, we'll be stronger together.

08:55.000 --> 08:56.000
And it was like, yeah, he gets it.

08:56.000 --> 08:59.000
There is absolutely opportunity to,

08:59.000 --> 09:02.000
know for him, for some more rocket chat instances

09:02.000 --> 09:03.000
and likewise element.

09:03.000 --> 09:07.000
So we started talking about it more seriously again

09:07.000 --> 09:11.000
and started to do this time, right to bridge.

09:11.000 --> 09:15.000
And this must be about 2021 or so.

09:15.000 --> 09:20.000
And it was just after element had taken getter

09:20.000 --> 09:24.000
off the hands of get lab, just as get lab was going to IPO.

09:24.000 --> 09:27.000
Get lab was having to focus all of its books

09:27.000 --> 09:30.000
and get rid of any weird stuff and poor old getter

09:30.000 --> 09:33.000
who they had bought so many years earlier

09:33.000 --> 09:35.000
was a bit of an anonymity, whereas we of course

09:35.000 --> 09:37.000
element did an awful lot of chat.

09:37.000 --> 09:42.000
And so basically get lab suggested that we could go

09:42.000 --> 09:45.000
and move getter into matrix and I thought, wow,

09:45.000 --> 09:48.000
that would be great because getter can be a showcase

09:48.000 --> 09:51.000
of how you're taking existing app and how do you integrate

09:51.000 --> 09:53.000
it to make it natively speak matrix.

09:53.000 --> 09:55.000
And we had just done that.

09:55.000 --> 09:57.000
And as it happens, getter has a very similar start

09:57.000 --> 09:58.000
to rocket chat.

09:58.000 --> 10:00.000
It's a whole bunch of touch groups

10:00.000 --> 10:03.000
and both from the front and then the back end from memory.

10:03.000 --> 10:06.000
So being able to say to Gabriel, yeah.

10:06.000 --> 10:09.000
Sure, you can get rocket chat talking matrix.

10:09.000 --> 10:12.000
And hey, look at the tutorial we wrote when we went

10:12.000 --> 10:15.000
and wrote a bridge to make getter natively speak matrix.

10:15.000 --> 10:17.000
You should do the same thing.

10:17.000 --> 10:20.000
And he puts in full time employees on it and went off.

10:20.000 --> 10:24.000
And we also as elements and provided consulting

10:24.000 --> 10:28.000
to basically answer any of the weird matrix bits.

10:28.000 --> 10:30.000
And it was really fun.

10:30.000 --> 10:31.000
It worked.

10:31.000 --> 10:32.000
They got written.

10:32.000 --> 10:33.000
And it went live.

10:33.000 --> 10:38.000
I believe in rocket chat 6, which is about a year or two.

10:38.000 --> 10:41.000
Well, possibly that sort of time frame.

10:41.000 --> 10:44.000
Now, the story gets big murky here because I'm not

10:44.000 --> 10:46.000
in fact Gabriel Angles, he a rocket chat.

10:46.000 --> 10:48.000
I'm Matthew Hodgson, he a relevant.

10:48.000 --> 10:53.000
But last I checked, as I said, they were marketing on it

10:53.000 --> 10:55.000
as a differentiator for rocket chat.

10:55.000 --> 10:58.000
The hey one of the good things is that we've had a regular matrix

10:58.000 --> 11:00.000
too and really leaning into it, which is cool.

11:00.000 --> 11:04.000
It's worth noting that Matthew most also said, yes, we will talk

11:04.000 --> 11:05.000
matrix.

11:05.000 --> 11:07.000
Did get somebody to write a matrix bridge for it.

11:07.000 --> 11:10.000
And then kind of didn't yell about it too much.

11:10.000 --> 11:14.000
But if you do look very deep in the maths community projects,

11:14.000 --> 11:16.000
I think you will find there is a mathematics

11:16.000 --> 11:19.000
connector or matrix connector for mathematics.

11:19.000 --> 11:21.000
But rocket chat properly leaned into it.

11:21.000 --> 11:26.000
And I believe that they then decided that they weren't wanting

11:26.000 --> 11:31.000
to bundle synapses next to rocket chat because synapses

11:31.000 --> 11:35.000
is in Python and they wanted something shiny.

11:35.000 --> 11:38.000
And so they decided they would use dendroy.

11:38.000 --> 11:41.000
Which in some ways would make sense if it wasn't for the fact

11:41.000 --> 11:44.000
which Eric Glost over completely in his synapses

11:44.000 --> 11:46.000
later the nation just now.

11:46.000 --> 11:51.000
The poor dendroy has basically got stuck in a eternal beta

11:51.000 --> 11:56.000
system where a first the intention was to move synapses

11:56.000 --> 11:58.000
entirely over to dendroy.

11:58.000 --> 12:01.000
But then I think France turned up and rolled out synapses

12:01.000 --> 12:06.000
at scale everywhere and suddenly become accredited

12:06.000 --> 12:09.000
and audited and was actually being run for real.

12:09.000 --> 12:12.000
And we had to really focus on making sure that it worked.

12:12.000 --> 12:15.000
At which point all of the time it should be spent making dendroy

12:15.000 --> 12:18.000
amazing with being spent maintaining synapses.

12:18.000 --> 12:21.000
And then rapidly we started stealing the architecture

12:21.000 --> 12:24.000
of dendroy like workers and replication

12:24.000 --> 12:27.000
and backporting it into synapses.

12:27.000 --> 12:30.000
When we first wrote dendroy synapses had no workers.

12:30.000 --> 12:33.000
It was a Python long lift and if you run out of CPU on a call

12:33.000 --> 12:34.000
you were done.

12:34.000 --> 12:37.000
But dendroy, on the other hand, is a microservices architecture

12:37.000 --> 12:40.000
that uses Kafka at the time in nowadays

12:40.000 --> 12:43.000
and that's as an event bus to go and link together

12:43.000 --> 12:45.000
all these different instances.

12:45.000 --> 12:47.000
The work is using radius as an event bus

12:47.000 --> 12:50.000
and synapses is basically a port of dendroy

12:50.000 --> 12:51.000
architecture to synapses.

12:51.000 --> 12:53.000
Long story short, we ended up with

12:53.000 --> 12:56.000
and still have two server implementations written by the

12:56.000 --> 12:59.000
core team who now does hang out our element.

12:59.000 --> 13:03.000
And port and tried is great.

13:03.000 --> 13:06.000
And there's now being maintained or at least

13:06.000 --> 13:08.000
mainly contributed to by the community.

13:08.000 --> 13:10.000
I'm hoping the element will get profit all

13:10.000 --> 13:12.000
some day before we run out of money ideally.

13:12.000 --> 13:15.000
And we will be able to invest some of the profits

13:15.000 --> 13:18.000
into maintaining dendroy properly again

13:18.000 --> 13:22.000
so that there is a second totally independent

13:22.000 --> 13:26.000
implementation done by the folks who created matrix

13:26.000 --> 13:28.000
in the first place to keep ourselves on

13:28.000 --> 13:30.000
as much as anything else.

13:30.000 --> 13:32.000
But so how dendroy is used today

13:32.000 --> 13:36.000
is basically for experimentation like peer-to-peer,

13:36.000 --> 13:39.000
like crypto IDs and pseudo IDs.

13:39.000 --> 13:43.000
There's no privacy work happening

13:43.000 --> 13:45.000
particularly in synapses right now

13:45.000 --> 13:47.000
because it was all happening in dendroy

13:47.000 --> 13:52.000
at least once dendroy had cash applied to it.

13:52.000 --> 13:55.000
So basically I told some Gabriel,

13:55.000 --> 13:57.000
I'm not sure you should be using dendroy

13:57.000 --> 13:59.000
because it's kind of in beta.

13:59.000 --> 14:01.000
And he said, oh, my devs love it.

14:01.000 --> 14:03.000
It's so much fun working on this experimental code.

14:03.000 --> 14:06.000
Yeah, we'll go with this and ship to anyway.

14:06.000 --> 14:09.000
At least I think they ship it anyway.

14:09.000 --> 14:11.000
So I'm not sure how that's going

14:11.000 --> 14:14.000
because obviously dendroy has not been massively

14:14.000 --> 14:16.000
maintained now for a year and a bit.

14:16.000 --> 14:18.000
There are PLs coming in.

14:18.000 --> 14:20.000
We'd still do critical updates,

14:20.000 --> 14:23.000
but you probably should not be using it in production.

14:23.000 --> 14:25.000
And if they are using it as the

14:25.000 --> 14:28.000
Dockerized home server that you get

14:28.000 --> 14:30.000
when you do a Docker compose rocket chat

14:30.000 --> 14:33.000
and still then that would not be ideal.

14:34.000 --> 14:37.000
However, I'm hoping that they also have

14:37.000 --> 14:39.000
it set up so you can use an app so you can use your

14:39.000 --> 14:41.000
existing home server alongside it.

14:41.000 --> 14:43.000
Or perhaps they've gone Polish dendroy enough

14:43.000 --> 14:45.000
that it is production great.

14:45.000 --> 14:48.000
Metal known fact is a Reddit chat is built entirely

14:48.000 --> 14:49.000
on dendroyts.

14:49.000 --> 14:51.000
Who knew that?

14:51.000 --> 14:53.000
Yeah, about four people.

14:53.000 --> 14:55.000
It's pretty depressing in that

14:55.000 --> 14:58.000
about the point that we ran after money

14:58.000 --> 15:01.000
to work on dendroyts was also the

15:01.000 --> 15:04.000
point that read it which is a relatively major

15:04.000 --> 15:08.000
organisation of hundreds of millions of users

15:08.000 --> 15:10.000
turned it on to power their system.

15:10.000 --> 15:13.000
Apparently they did a proprietary fork of it

15:13.000 --> 15:15.000
thanks to the matcha curve Apache licensing

15:15.000 --> 15:18.000
and replaced the backend to use

15:18.000 --> 15:22.000
Cassandra, Rav, then Postgres

15:22.000 --> 15:24.000
because all of their infrastructure is Cassandra.

15:24.000 --> 15:26.000
And I believe to this day if you go to chat.

15:26.000 --> 15:28.000
Reddit.com right now and look at the network

15:28.000 --> 15:30.000
perspective you'll see a whole bunch of

15:30.000 --> 15:32.000
matrix traffic flying around as it

15:32.000 --> 15:34.000
talks dendroyts.

15:34.000 --> 15:36.000
In fact as that counts as production.

15:36.000 --> 15:38.000
The power dendroyts is production great.

15:38.000 --> 15:41.000
Perhaps for rocket chat using it isn't

15:41.000 --> 15:42.000
such a crazy idea.

15:42.000 --> 15:44.000
But for my side it's a little bit weird

15:44.000 --> 15:46.000
and I hope that they have the option

15:46.000 --> 15:48.000
of synapses as well.

15:48.000 --> 15:50.000
I think the Gabriel for I was trying to

15:50.000 --> 15:52.000
have no good at

15:52.000 --> 15:54.000
disweight him from using dendroyts because I

15:54.000 --> 15:56.000
wanted to keep dendroyts as a special

15:56.000 --> 15:59.000
differentiated competitive advantage for

15:59.000 --> 16:01.000
element which is not the case.

16:01.000 --> 16:03.000
I told him that this is probably stuck in

16:03.000 --> 16:05.000
beta I really meant it.

16:05.000 --> 16:08.000
But that is where things are right there.

16:08.000 --> 16:11.000
And actually I did speak to him

16:11.000 --> 16:13.000
at Postom 2 years ago.

16:13.000 --> 16:15.000
And had a meal to go for and talk about

16:15.000 --> 16:17.000
how things going and he I think said

16:17.000 --> 16:19.000
that they were starting to look fairly

16:19.000 --> 16:22.000
seriously as the solution to the dendroyts thing

16:22.000 --> 16:25.000
to finish off the TS matrix

16:25.000 --> 16:27.000
server lab idea and get their

16:27.000 --> 16:29.000
node code based talking proper

16:29.000 --> 16:31.000
federation.

16:31.000 --> 16:33.000
And based on the good experience

16:33.000 --> 16:35.000
that they had with the bridging and the

16:35.000 --> 16:37.000
fact that the architecture had worked

16:37.000 --> 16:38.000
relatively well.

16:38.000 --> 16:40.000
So I don't know if somebody has

16:40.000 --> 16:41.000
got a laptop in front of them

16:41.000 --> 16:43.000
perhaps open up get up and get

16:43.000 --> 16:45.000
to rocket chat and do some search terms to

16:45.000 --> 16:47.000
see if they actually have server

16:47.000 --> 16:50.000
federation API work happening there.

16:50.000 --> 16:52.000
But I believe their intention was to

16:52.000 --> 16:54.000
bring it native so you don't have to

16:54.000 --> 16:56.000
just have one stack and it will be written

16:56.000 --> 16:58.000
in the same language they would maintain

16:58.000 --> 17:00.000
themselves and it would work great.

17:00.000 --> 17:02.000
So perhaps his talk was going to be about

17:02.000 --> 17:04.000
that and what it was working.

17:04.000 --> 17:07.000
And in my dream of it would be kind of

17:07.000 --> 17:09.000
fun if there was a whole new home server

17:09.000 --> 17:10.000
implementation written in

17:10.000 --> 17:13.000
node done by the rocket chat team.

17:13.000 --> 17:15.000
But unless someone has actually looked

17:15.000 --> 17:17.000
and found it I honestly don't know what

17:17.000 --> 17:18.000
the answer is.

17:18.000 --> 17:23.000
So.

17:23.000 --> 17:26.000
But may or may not have been in

17:26.000 --> 17:28.000
the talk he knows.

17:28.000 --> 17:31.000
Well, big applause anyway.

17:31.000 --> 17:36.000
Thank you very much.

17:36.000 --> 17:38.000
I think there are a lot of interesting

17:38.000 --> 17:39.000
insights that actually were

17:39.000 --> 17:41.000
probably would have never got back to the

17:41.000 --> 17:42.000
group.

17:42.000 --> 17:44.000
Yeah, it gets all questions would be a bit

17:44.000 --> 17:45.000
hard.

17:45.000 --> 17:47.000
Now I mean honestly people have questions

17:47.000 --> 17:49.000
and ways of gluing took different

17:49.000 --> 17:50.000
technologies together.

17:50.000 --> 17:51.000
You could also gossip about the

17:51.000 --> 17:52.000
disaster that is DMA.

17:52.000 --> 17:53.000
To the have a question.

17:53.000 --> 17:56.000
Okay, what's the cause?

17:56.000 --> 17:58.000
I'll relate to the audience in the second.

17:58.000 --> 18:01.000
Is called home server?

18:01.000 --> 18:04.000
Why are those the best name for a home server?

18:04.000 --> 18:05.000
I don't know.

18:05.000 --> 18:06.000
I don't know.

18:06.000 --> 18:09.000
Okay, what's the cause?

18:09.000 --> 18:11.000
I'll relate to the audience in the second.

18:11.000 --> 18:14.000
Is called home server?

18:14.000 --> 18:16.000
Why are those the best name for a home server?

18:16.000 --> 18:18.000
I've ever heard.

18:18.000 --> 18:20.000
Okay, so to relate to there's been

18:20.000 --> 18:22.000
researching and it turns out that

18:22.000 --> 18:24.000
indeed they have been working on

18:24.000 --> 18:26.000
an active note home server

18:26.000 --> 18:28.000
implementation for integration

18:28.000 --> 18:30.000
into rocket share and it is

18:30.000 --> 18:32.000
GitHub.com slash rocket dot

18:32.000 --> 18:34.000
chat slash home server.

18:34.000 --> 18:36.000
And it was being worked on until

18:36.000 --> 18:37.000
a couple of months ago.

18:37.000 --> 18:38.000
It doesn't look complete.

18:38.000 --> 18:40.000
But I imagine when rocket share

18:40.000 --> 18:42.000
submitted this talk they wanted to talk

18:42.000 --> 18:44.000
about that project and the guy who was

18:44.000 --> 18:46.000
working on it and then the success

18:46.000 --> 18:48.000
or not that they had had with it.

18:48.000 --> 18:50.000
The fact that it hasn't had commits in a few months

18:50.000 --> 18:51.000
and Gabriel isn't here.

18:51.000 --> 18:52.000
It implies that it may not have gone

18:52.000 --> 18:53.000
amazing you are.

18:53.000 --> 18:54.000
But you know, it's going to look at the

18:54.000 --> 18:56.000
codes and helps it's great.

18:56.000 --> 18:58.000
But yeah, people do have questions

18:58.000 --> 19:00.000
about bridging or interrupt

19:00.000 --> 19:02.000
existing systems into matrix.

19:02.000 --> 19:04.000
I mean, bridging is a

19:04.000 --> 19:05.000
double-edged sword.

19:05.000 --> 19:07.000
It's a great way to get rocket chat

19:07.000 --> 19:09.000
or get a raw mattermaster or

19:09.000 --> 19:11.000
WhatsApp into matrix.

19:11.000 --> 19:12.000
But on the other hand,

19:12.000 --> 19:15.000
it's always an impedance mismatch.

19:15.000 --> 19:17.000
It's not benefiting from typically

19:17.000 --> 19:19.000
not benefiting from matrixes and to

19:19.000 --> 19:20.000
encryption.

19:20.000 --> 19:21.000
It's a bit of a dirty hat.

19:21.000 --> 19:24.000
So, President Kant, if people

19:24.000 --> 19:26.000
have questions or thoughts, this is your

19:26.000 --> 19:27.000
time to have an improvised bridging

19:27.000 --> 19:28.000
Q&A.

19:28.000 --> 19:30.000
If not, I will stop one morning.

19:30.000 --> 19:31.000
There was a hand.

19:31.000 --> 19:32.000
No, that was Kevin's scratching his ear.

19:32.000 --> 19:33.000
Sorry, Kevin.

19:33.000 --> 19:34.000
Yeah.

19:34.000 --> 19:38.000
So, how scare boys

19:39.000 --> 19:41.000
are going to be?

19:41.000 --> 19:44.000
So, scalability for synapse.

19:44.000 --> 19:47.000
So,

19:47.000 --> 19:50.000
yeah, yep.

19:50.000 --> 19:52.000
So, the Eric had a sort of

19:52.000 --> 19:53.000
state-of-the-nation moment.

19:53.000 --> 19:54.000
He didn't really target

19:54.000 --> 19:55.000
specifically scalability.

19:55.000 --> 19:57.000
First of all, how do you define

19:57.000 --> 19:58.000
scalability?

19:58.000 --> 20:00.000
Is this like messages per second?

20:00.000 --> 20:02.000
Is this number of uses in the room?

20:02.000 --> 20:04.000
Is this number of service

20:04.000 --> 20:05.000
participating in a room?

20:05.000 --> 20:08.000
If we assume that it is the number

20:08.000 --> 20:11.000
of users, let me think.

20:11.000 --> 20:14.000
That number of locals uses on a server.

20:14.000 --> 20:16.000
So, say that you're running just one server.

20:16.000 --> 20:18.000
It's not federated and you've got

20:18.000 --> 20:20.000
a million users on it.

20:20.000 --> 20:22.000
You're going to need to run lots of work

20:22.000 --> 20:24.000
processes, which is not

20:24.000 --> 20:25.000
Kafka.

20:25.000 --> 20:26.000
It's synapse.

20:26.000 --> 20:28.000
You use radius to basically

20:28.000 --> 20:30.000
find out data from the main process.

20:30.000 --> 20:32.000
Nowadays, the main process

20:32.000 --> 20:34.000
doesn't do any messaging.

20:34.000 --> 20:36.000
It is just for coordination.

20:36.000 --> 20:37.000
So, it is not on the hot path

20:37.000 --> 20:39.000
of any actual messaging.

20:39.000 --> 20:41.000
So, what you do is to run lots of

20:41.000 --> 20:42.000
what we call work processes,

20:42.000 --> 20:44.000
which go and handle

20:44.000 --> 20:46.000
I know sending messages to clients,

20:46.000 --> 20:47.000
receiving messages from clients,

20:47.000 --> 20:49.000
also sending receiving to servers

20:49.000 --> 20:51.000
and a bunch of other ones.

20:51.000 --> 20:52.000
And you can run as many of

20:52.000 --> 20:53.000
those as you like.

20:53.000 --> 20:54.000
And as we say,

20:54.000 --> 20:56.000
matrix.org is about

20:56.000 --> 20:57.000
170 of these.

20:57.000 --> 20:59.000
So, basically 170 calls

20:59.000 --> 21:01.000
worth maximum of CPU.

21:02.000 --> 21:03.000
And that does a

21:03.000 --> 21:05.000
bout

21:05.000 --> 21:06.000
all around

21:06.000 --> 21:07.000
two million simultaneous

21:07.000 --> 21:08.000
connected users,

21:08.000 --> 21:09.000
I think,

21:09.000 --> 21:11.000
on that server across all of those

21:11.000 --> 21:12.000
workers.

21:12.000 --> 21:14.000
And two two physical

21:14.000 --> 21:15.000
servers,

21:15.000 --> 21:17.000
each with a

21:17.000 --> 21:19.000
whole bunch of 64

21:19.000 --> 21:21.000
called CPUs and lots

21:21.000 --> 21:22.000
of NVMe

21:22.000 --> 21:23.000
and disks about 10

21:23.000 --> 21:24.000
terabytes of

21:24.000 --> 21:25.000
disk,

21:25.000 --> 21:26.000
specifically.

21:26.000 --> 21:27.000
In fact,

21:27.000 --> 21:28.000
there are two application

21:28.000 --> 21:30.000
servers, two database

21:30.000 --> 21:31.000
servers.

21:31.000 --> 21:32.000
And then a bunch of

21:32.000 --> 21:33.000
BPSs

21:33.000 --> 21:34.000
who do some of the more

21:34.000 --> 21:35.000
boring

21:35.000 --> 21:36.000
workers

21:36.000 --> 21:37.000
and setting alongside it.

21:37.000 --> 21:38.000
So, that is how far it

21:38.000 --> 21:39.000
can scale.

21:39.000 --> 21:40.000
But you

21:40.000 --> 21:41.000
right now,

21:41.000 --> 21:42.000
or at least until

21:42.000 --> 21:43.000
very recently,

21:43.000 --> 21:44.000
and all

21:44.000 --> 21:45.000
thought of those workers,

21:45.000 --> 21:46.000
did nothing but

21:46.000 --> 21:47.000
keep up with traffic.

21:47.000 --> 21:48.000
So, they weren't actually doing

21:48.000 --> 21:49.000
much useful work.

21:49.000 --> 21:50.000
They were basically

21:50.000 --> 21:51.000
consuming,

21:51.000 --> 21:52.000
replicated

21:52.000 --> 21:53.000
fire hose,

21:53.000 --> 21:54.000
filtering it,

21:54.000 --> 21:55.000
pulling stuff out of the database,

21:55.000 --> 21:57.000
trying to decide what to do with it.

21:57.000 --> 21:59.000
So,

21:59.000 --> 22:01.000
I'm going to be a

22:01.000 --> 22:04.000
project to go and improve

22:04.000 --> 22:05.000
the scalability,

22:05.000 --> 22:07.000
but I can't talk about it because

22:07.000 --> 22:08.000
this is awesome.

22:08.000 --> 22:10.000
Any other questions?

22:10.000 --> 22:12.000
Did I answer the question?

22:12.000 --> 22:13.000
Excellent.

22:13.000 --> 22:15.000
I can obviously am a

22:15.000 --> 22:17.000
on nature extra from

22:17.000 --> 22:18.000
an employee in the face,

22:18.000 --> 22:20.000
so, if it is flat the room or

22:20.000 --> 22:21.000
friendly themselves,

22:21.000 --> 22:22.000
I have to win the

22:22.000 --> 22:24.000
one.

22:24.000 --> 22:27.000
So, this one,

22:28.000 --> 22:29.000
for sure.

22:29.000 --> 22:30.000
So, the question is,

22:30.000 --> 22:32.000
make tricks on IoT.

22:32.000 --> 22:34.000
So,

22:34.000 --> 22:35.000
I mean,

22:35.000 --> 22:36.000
Matrix is very flexible.

22:36.000 --> 22:37.000
It's just an invent bus

22:37.000 --> 22:39.000
with persistence and encryption

22:39.000 --> 22:40.000
for anything.

22:40.000 --> 22:41.000
And

22:41.000 --> 22:42.000
we've done a lot of

22:42.000 --> 22:43.000
weird experiments over the

22:43.000 --> 22:45.000
years to try to persuade people to

22:45.000 --> 22:46.000
build

22:46.000 --> 22:47.000
weird things on Matrix and use it

22:47.000 --> 22:48.000
from open chat.

22:48.000 --> 22:49.000
In practice,

22:49.000 --> 22:50.000
in retrospect,

22:50.000 --> 22:51.000
this might have been more about

22:51.000 --> 22:52.000
me wanting to do fun

22:52.000 --> 22:54.000
than making the world a better place.

22:54.000 --> 22:55.000
But, as a result,

22:56.000 --> 22:57.000
we've done some IoT

22:57.000 --> 22:58.000
ones.

22:58.000 --> 22:59.000
A very early one was actually

22:59.000 --> 23:00.000
done by the community,

23:00.000 --> 23:01.000
by the guy called Ryan

23:01.000 --> 23:02.000
Rex.

23:02.000 --> 23:03.000
He was a Uber at the

23:03.000 --> 23:04.000
time.

23:04.000 --> 23:05.000
He connected his entire

23:05.000 --> 23:07.000
home assistant set up of

23:07.000 --> 23:08.000
LED strip lighting.

23:08.000 --> 23:09.000
This was like 10 years ago,

23:09.000 --> 23:10.000
so the LED strip lighting

23:10.000 --> 23:12.000
was pretty cool.

23:12.000 --> 23:13.000
With

23:13.000 --> 23:15.000
non-due in the Raspberry Pi

23:15.000 --> 23:16.000
and Matrix,

23:16.000 --> 23:18.000
so that he could basically use

23:18.000 --> 23:19.000
Matrix as an invent bus

23:19.000 --> 23:21.000
to get all the telemetry of both

23:21.000 --> 23:23.000
conjunction lights and other stuff in the

23:23.000 --> 23:24.000
room.

23:24.000 --> 23:25.000
Another example is

23:25.000 --> 23:26.000
one

23:26.000 --> 23:28.000
a demo that I did at WebRTC

23:28.000 --> 23:29.000
World 2016

23:29.000 --> 23:30.000
in Miami,

23:30.000 --> 23:31.000
Florida.

23:31.000 --> 23:32.000
I turned up with a

23:32.000 --> 23:33.000
parent drone

23:33.000 --> 23:34.000
back before drones

23:34.000 --> 23:36.000
with many used to kill people.

23:36.000 --> 23:38.000
It was appropriate to turn

23:38.000 --> 23:39.000
up at a conference with a

23:39.000 --> 23:40.000
little drone,

23:40.000 --> 23:41.000
which I'd written a bridge

23:41.000 --> 23:43.000
between the C++

23:43.000 --> 23:44.000
led parent library that

23:44.000 --> 23:45.000
it came with

23:45.000 --> 23:46.000
and Matrix,

23:46.000 --> 23:47.000
so that I could video

23:47.000 --> 23:48.000
call it.

23:48.000 --> 23:49.000
And get hardware

23:49.000 --> 23:51.000
264 encoded 1080p video

23:51.000 --> 23:52.000
into a normal matrix

23:53.000 --> 23:54.000
cool, so just use it as a

23:54.000 --> 23:55.000
remote webcam,

23:55.000 --> 23:56.000
but I also did

23:56.000 --> 23:57.000
flight by

23:57.000 --> 23:58.000
while over

23:58.000 --> 23:59.000
IoT.

23:59.000 --> 24:00.000
It's a very sophisticated

24:00.000 --> 24:01.000
boat school,

24:01.000 --> 24:02.000
where you would type

24:02.000 --> 24:03.000
launch, return,

24:03.000 --> 24:04.000
and this would

24:04.000 --> 24:05.000
make the thing go up

24:05.000 --> 24:06.000
and flip,

24:06.000 --> 24:07.000
and it would do

24:07.000 --> 24:08.000
360,

24:08.000 --> 24:09.000
and all this sort of thing.

24:09.000 --> 24:10.000
But joking inside,

24:10.000 --> 24:11.000
it was really a basic way

24:11.000 --> 24:12.000
of doing

24:12.000 --> 24:13.000
non-human

24:13.000 --> 24:14.000
messaging there.

24:14.000 --> 24:15.000
Then

24:15.000 --> 24:16.000
the vendors there

24:16.000 --> 24:18.000
initiated a project

24:18.000 --> 24:19.000
to do

24:20.000 --> 24:21.000
an IoT telemetry

24:21.000 --> 24:22.000
through

24:22.000 --> 24:23.000
vehicles,

24:23.000 --> 24:24.000
so specifically

24:24.000 --> 24:26.000
ODB2

24:26.000 --> 24:27.000
telemetry,

24:27.000 --> 24:28.000
so this is the

24:28.000 --> 24:29.000
diagnostic port that all

24:29.000 --> 24:30.000
vehicles have.

24:30.000 --> 24:31.000
You can set the data

24:31.000 --> 24:32.000
out of it,

24:32.000 --> 24:33.000
which is

24:33.000 --> 24:35.000
hilariously fragmented and

24:35.000 --> 24:36.000
non-standardized,

24:36.000 --> 24:37.000
is every vendor just

24:37.000 --> 24:39.000
puts whatever the

24:39.000 --> 24:40.000
hell they like in it.

24:40.000 --> 24:41.000
And then

24:41.000 --> 24:42.000
sucking it all up,

24:42.000 --> 24:43.000
putting it into

24:43.000 --> 24:44.000
matrix, aggregating it,

24:44.000 --> 24:45.000
building

24:45.000 --> 24:46.000
dashboards of

24:46.000 --> 24:47.000
engine pressure,

24:47.000 --> 24:48.000
and

24:48.000 --> 24:49.000
there would be a bunch of other ones

24:49.000 --> 24:50.000
like it.

24:50.000 --> 24:51.000
But it's always been a bit

24:51.000 --> 24:52.000
fringe.

24:52.000 --> 24:53.000
I mean, it works,

24:53.000 --> 24:54.000
but there's never been a

24:54.000 --> 24:55.000
kind of

24:55.000 --> 24:56.000
element like company out there saying,

24:56.000 --> 24:57.000
you know,

24:57.000 --> 24:58.000
we're going to do

24:58.000 --> 24:59.000
kick-ass IoT

24:59.000 --> 25:00.000
with matrix.

25:00.000 --> 25:01.000
And also,

25:01.000 --> 25:02.000
the IoT folks like

25:02.000 --> 25:03.000
MQT,

25:03.000 --> 25:04.000
they like

25:04.000 --> 25:06.000
the co-app

25:06.000 --> 25:07.000
style protocols,

25:07.000 --> 25:08.000
which are very,

25:08.000 --> 25:09.000
very simple,

25:09.000 --> 25:10.000
small,

25:10.000 --> 25:11.000
and can put on your

25:11.000 --> 25:12.000
ESP,

25:12.000 --> 25:13.000
86 or whatever

25:13.000 --> 25:15.000
your favorite micro controller

25:15.000 --> 25:16.000
is a matrix client,

25:16.000 --> 25:18.000
is a bit chunky.

25:18.000 --> 25:19.000
First of all,

25:19.000 --> 25:20.000
let's do TLS,

25:20.000 --> 25:21.000
then we want to do

25:21.000 --> 25:22.000
end-to-end encryption,

25:22.000 --> 25:23.000
and here is a

25:23.000 --> 25:25.000
massive E2E stack.

25:25.000 --> 25:26.000
And so,

25:26.000 --> 25:27.000
I think there is

25:27.000 --> 25:29.000
basically a gap between

25:29.000 --> 25:30.000
the lightness that you

25:30.000 --> 25:31.000
expect on an IoT device,

25:31.000 --> 25:32.000
and the chunkiness,

25:32.000 --> 25:33.000
the matrix,

25:33.000 --> 25:34.000
can give you.

25:34.000 --> 25:35.000
And I hope

25:35.000 --> 25:36.000
ran out of time.

25:36.000 --> 25:37.000
I'm not

25:37.000 --> 25:38.000
existing to thank you so much.

25:38.000 --> 25:39.000
Thank you.

