WEBVTT

00:00.000 --> 00:11.600
So, welcome everybody new in the room. And yeah, we have a very interesting new guest here,

00:11.600 --> 00:15.000
which is Margo from Star Wars. So, give him a warm welcome and let us learn about it.

00:15.000 --> 00:19.000
Thank you very much.

00:19.000 --> 00:24.600
Yeah. Okay, welcome. First time doing a talking front of a large audience. So, I hope

00:24.600 --> 00:26.000
you go as well.

00:26.000 --> 00:33.000
Okay. Okay.

00:33.000 --> 00:39.200
So, I want to do a brief story about the project. I've been involved with emails for a few

00:39.200 --> 00:46.000
years already. I started with UUCP, download emails with a modern. Then in the late 90s,

00:46.000 --> 00:54.000
I wrote a web mail in C, using CGI 1.0. Then I wrote a mail server in the 2000s and then

00:55.000 --> 01:04.000
another mail server in Java. So, then what happened is that after taking a break to study,

01:04.000 --> 01:09.000
I went back to the email world and I saw that everything was pretty much the same.

01:09.000 --> 01:18.000
Like, there was still post-fix, dog code around. And yeah, and I said, we have something

01:18.000 --> 01:25.000
to be done about that. So, of course, post-fix and dog code are great tools. They're

01:25.000 --> 01:31.000
rock solid. They've been there for decades. But yeah, they haven't changed much.

01:31.000 --> 01:36.000
So, if you want to run a mail server, you need different tools from different providers,

01:36.000 --> 01:42.000
only post-fix and dog code, you also need other tools. I will cover later.

01:42.000 --> 01:48.000
Then, also, you need experience maintaining all these different tools, because they're not from

01:48.000 --> 01:57.000
the same people. Then, yeah, for debugging, you need to go through different types of logs,

01:57.000 --> 02:04.000
also multiple dependencies. Also, no unify administration interface. There's, yeah, of course,

02:05.000 --> 02:10.000
even also post-fix and dog code do not have a UI in it to use their party tools.

02:10.000 --> 02:15.000
And they were not designed for scalability, or modern email protocols. For example,

02:15.000 --> 02:20.000
mail deal, of course, you can make it scale, but it's not, it's not scalable.

02:20.000 --> 02:25.000
Also, with post-fix, they all accuse our local. They're not designed to be running a cluster.

02:25.000 --> 02:30.000
Like, it's one delivery server fails, and other one can take over.

02:30.000 --> 02:36.000
So, then, you have solutions like mail in a box and mail cow, and all those dog surveys,

02:36.000 --> 02:42.000
solutions that bundle multiple tools, but it's just an attempt to simplify, but they don't solve

02:42.000 --> 02:48.000
the long-term problems. So, they're just wrapping the complexity in a box.

02:48.000 --> 02:54.000
So, running a mail server shouldn't be like having a big shopping list that you need,

02:54.000 --> 02:59.000
post-fix, someone says, in post-grade, became the virus.

02:59.000 --> 03:07.000
This was taken from the latest mail in a box, Dockerfile, all the stuff they're downloading.

03:07.000 --> 03:13.000
Okay, so, say we'll buy to complexity and hello to store work.

03:13.000 --> 03:26.000
Okay, store work is an all-in-one mail server.

03:26.000 --> 03:31.000
It includes services. It's a single binary that includes everything you need to run a mail server.

03:31.000 --> 03:38.000
It has S&TP, JMA, PIMA4, POP3, ManageCiv, it has a building, spam and fishing filter.

03:38.000 --> 03:45.000
Well, based admin, it is a scaleable from day one, modern, programmable, secure, and was also

03:45.000 --> 03:54.000
a memory safe, written in Rust. And it's available for Unix, UNBSE, Windows, and also a Docker container.

03:54.000 --> 04:02.000
So, to install, store work is really easy, you just download the script, you install it, and that's it.

04:02.000 --> 04:12.000
And then you go to the admin, you log in, and what you just need to do is enter your main host name.

04:12.000 --> 04:25.000
There's a name of your server, and then you have to have a, well, an acrylic provider.

04:25.000 --> 04:35.000
And it supports different challenge types, TLS, ALPN, zero-one, DNS zero-one, HTTP zero-one.

04:35.000 --> 04:41.000
But I won't spend too much time here. Then you add the domain, and your first account, and you're ready to owe.

04:41.000 --> 04:46.000
You reload the configuration, and that's it, you have the mail server up and running.

04:46.000 --> 04:57.000
So, store work started as a JMAP store, then I'll support for IMAP, Pop3, and it has a competing implementation of JMAP.

04:57.000 --> 05:10.000
The core mail, the draft on the latest draft for seed scripts, web sockets, blog management, quotas, and coming soon this year calendars and contacts.

05:10.000 --> 05:21.000
Then also supports IMAP, the new version of the revision 2, is compatible with revision 1, has the construct, you're receiving access control lists, and many other extensions.

05:21.000 --> 05:29.000
It also supports old protocols like pop3, extensions, the pop3s, and managed seed.

05:29.000 --> 05:41.000
This NTP series is a programmable and scalable MTA. Dynamic configuration rules with expressions that we're going to cover later.

05:41.000 --> 05:53.000
It has seed scripting, so you can run seed scripts, although seed scripts were designed for the mailbox delivery, you can run them at each page of the SMPP session, the data, RCPT and so on.

05:53.000 --> 06:07.000
It supports a filter that was a relic from the send mail area, era, and it supports a modern protocol that should be standardized at some point called MTA hooks, which is an HTTP device.

06:07.000 --> 06:14.000
It's like the JMAP to filter for to IMAP for filtering on it.

06:14.000 --> 06:18.000
It also enveloped rewriting and message notification.

06:18.000 --> 06:31.000
What then includes everything for send error message authentication, the mark, the KEM, SPF, Arc, reverse IP, and the MTA report, but you want support VMAP until the protocol is fixed.

06:31.000 --> 06:39.000
If you have problems, you will tell you what is doing at each page of the email delivery test.

06:39.000 --> 06:43.000
Something goes wrong, you can test and you will tell you what is going on.

06:43.000 --> 06:46.000
Also, you can do DMARC troubleshooting.

06:46.000 --> 06:51.000
You can see what wrong with your own domain and also with external domains.

06:51.000 --> 06:58.000
Those supports strong transport security, ZIN, MTA, STI, TLS reporting.

06:58.000 --> 07:02.000
I know that's automatic analysis of TLS reports that you receive.

07:02.000 --> 07:07.000
You can turn them if you have a failing report or indicate failures.

07:07.000 --> 07:12.000
You can turn them into web hooks or log them to open telemetry or whatever you like.

07:12.000 --> 07:16.000
This is how the MARC and TLS reporting analysis.

07:16.000 --> 07:20.000
So you don't need those online services like the MARC or the MARC tools.

07:20.000 --> 07:22.000
You can do that from store work.

07:22.000 --> 07:26.000
So you can see the reports that you will send and the report you received.

07:26.000 --> 07:28.000
Also, what happened to that?

07:28.000 --> 07:31.000
This is for all TLS and the MARC.

07:31.000 --> 07:36.000
And then the message queue, since NTP server, they're distributed.

07:36.000 --> 07:42.000
So if you run store work in a cluster and once server crashes, another server can take over and keep the delivery in those messages.

07:42.000 --> 07:45.000
This is a shared message queue.

07:45.000 --> 07:54.000
It has enabled an algorithm right limiting to prevent spammer from your side and to prevent attacks also from the outside.

07:54.000 --> 07:59.000
Also, a queue quota, you can say from this domain or from this sender,

07:59.000 --> 08:05.000
only maximum of these megabytes or messages can be the queue at any given time.

08:05.000 --> 08:08.000
Dynamic routing rules.

08:08.000 --> 08:15.000
Also, delay and priority delivery with an extension called MTP priority and virtual queue.

08:15.000 --> 08:20.000
This is how you can manage the queue from the web.

08:20.000 --> 08:28.000
From the web admin, see all the delivery attempts, check the contents and so on.

08:28.000 --> 08:30.000
I also see the delivery history.

08:30.000 --> 08:37.000
The message queue, all the attempts for each session are going, you can see what happened.

08:37.000 --> 08:39.000
Okay.

08:39.000 --> 08:45.000
Something I forgot to mention at the beginning, the server is completely open source under HPL3.

08:45.000 --> 08:50.000
But there are some modules like multi-tenancy that are available to sponsor,

08:50.000 --> 08:53.000
GitHub sponsors and open collective sponsors.

08:53.000 --> 08:56.000
But like 95% is completely free.

08:56.000 --> 09:02.000
So the spam on feature in filter, it was based on R spam D.

09:02.000 --> 09:04.000
So it's a complete solution.

09:04.000 --> 09:09.000
You don't need to run any external spam filters.

09:09.000 --> 09:12.000
So the problem with doing that, using external tool is that,

09:12.000 --> 09:18.000
sorry, the problem with using external tools is that you need to rerun all the tests that store

09:18.000 --> 09:23.000
over this because over a meter you get information about the envelope.

09:23.000 --> 09:29.000
But you don't get unless they look at the headers, you don't get the remark and the team validation data.

09:29.000 --> 09:32.000
They need to redo all the tests and pass the message again.

09:32.000 --> 09:38.000
So as I say, it's a built-in filter that's required in third-party software.

09:38.000 --> 09:43.000
The use rules are a compiler runtime and it avoids regular expression.

09:43.000 --> 09:50.000
Unless you write one, it uses, it warns you and you write your expression because I got scared by looking as spam assassin.

09:50.000 --> 09:53.000
And there were so many.

09:53.000 --> 09:58.000
Also, it has a protection, it's quite effective.

09:59.000 --> 10:06.000
And also, there is a repository where you can update and contribute rules to the filter.

10:06.000 --> 10:15.000
It supports the text, a photographic attacks, fish in attacks on URLs, DNS blocklies,

10:15.000 --> 10:20.000
collaborative data based filtering with Python, for example, trust-presser replies,

10:20.000 --> 10:24.000
send the reputation monitoring to adjust the reputation based on the history.

10:25.000 --> 10:31.000
A great listing of spam trap, although a listing is not used nowadays, it's not pretty effective.

10:31.000 --> 10:39.000
Also, sorry for the term AI, so it means machine learning, access to, it includes the classic base spam filter,

10:39.000 --> 10:46.000
either global and also per user, automatic trading of classifiers when a score is too high or too low,

10:46.000 --> 10:49.000
you can trigger the automatic classification.

10:49.000 --> 10:58.000
Also, it can integrate with LLMs, either self-coaster or cloud for filtering to get an assistant of what the LLMs thought about the context of the message,

10:58.000 --> 11:05.000
because nowadays, most of the spam comes from Google and Microsoft, so you need to, they're passing all checks.

11:05.000 --> 11:13.000
They're not blocked anywhere, so you need to look at the content at some point, it's offering stuff that I don't need, so, and you do that as well.

11:13.000 --> 11:24.000
Also, you can run LLMs from ship scripts to classifier your messages, and this is something that's been evaluated using bird models for spam classification,

11:24.000 --> 11:31.000
because LLMs you might know is quite slow, if you have a heavy server, you will take hours to take process your message queue,

11:31.000 --> 11:38.000
so another alternative is bird, but it requires some training.

11:38.000 --> 11:43.000
Well, Star Wars is also secured, that was an important part.

11:43.000 --> 11:45.000
It's important to not rest.

11:45.000 --> 11:51.000
Something important is that other provided like proton mail or even the op code says the offer,

11:51.000 --> 11:56.000
because it is an encryption address, but you don't hold the packet key, so it doesn't matter,

11:56.000 --> 12:01.000
because when you transfer the message or I map is an encrypted, they can look at it.

12:01.000 --> 12:10.000
I mean, the administrator, at least using a proprietary solution, like a bit more than, they can still look at your, have access to your data.

12:10.000 --> 12:17.000
So, Star Wars is an asymmetric encryption with open BGP or S-mines, so you upload your public key,

12:17.000 --> 12:22.000
and when the message is receiving clear text, it will automatically encrypt it.

12:22.000 --> 12:27.000
So, yeah, and this MS is already encrypted, it won't be encrypted, obviously.

12:27.000 --> 12:32.000
Also, you may ask what happens with the full text search.

12:32.000 --> 12:37.000
Of course, I cannot be encrypted, but you can offer kite using Bloom filters.

12:37.000 --> 12:43.000
Using the internal full text search of Star Wars, you can offer kite the words.

12:43.000 --> 12:52.000
Of course, you can do a dictionary attack and find what are those words, but it's a layer of protection, if you want to lose full text.

12:52.000 --> 12:55.000
Also, yeah, no private keys are stored.

12:55.000 --> 12:58.000
So, an encryption can't read the user data.

12:58.000 --> 13:01.000
This is how it looks, you select your encryption key.

13:01.000 --> 13:07.000
This is a self-service portal, what user view, you paste your key, same changes, and that's it.

13:07.000 --> 13:10.000
And the encryption address is enabled.

13:10.000 --> 13:16.000
Okay, all the security features, as Star Wars has, it has a built-in like fail to run,

13:16.000 --> 13:23.000
if someone is trying to try recipients or try a multiple authentication failures,

13:24.000 --> 13:27.000
or try to scan your server, you will block them.

13:27.000 --> 13:33.000
So, it's not how access to firewall tables, it will just drop the connection, what that IP is blocked.

13:33.000 --> 13:38.000
But you can import the block type piece and add them to your firewall, if you like.

13:38.000 --> 13:44.000
Also, it has rate and concurrency limiting on jima, iMap, everywhere, permission,

13:44.000 --> 13:48.000
for every action that can be done in the server.

13:48.000 --> 13:56.000
And access control list through the iMap ACL extension of the jima, sharing draft.

13:56.000 --> 14:03.000
You can bundle those permissions in rows and assign rows to users, so you have groups.

14:03.000 --> 14:06.000
I mean, it's memory safe for people who are at Rust.

14:06.000 --> 14:11.000
It's not a feature, but I've been a Rust fanboy, I have to list it as a feature Rust.

14:12.000 --> 14:17.000
So, it has a lot of features, also an addition to what I've mentioned.

14:17.000 --> 14:19.000
It has a lot of backends that you can use.

14:19.000 --> 14:23.000
Foundation DV, I don't know if you're familiar with it, it was created by Apple.

14:23.000 --> 14:29.000
They use it internally in clusters of thousands of servers to running infrastructure, so it's very scalable.

14:29.000 --> 14:36.000
It's a bit tricky to implement because it has some limits, but it's a best option you have for running Star Wars in a cluster.

14:36.000 --> 14:41.000
But if you prefer Postgres or Aloy TV, Galera, all those, you can also use them.

14:41.000 --> 14:44.000
For local store, you have ROX TV and SQLite.

14:44.000 --> 14:53.000
This is for the in memory store, ready for the blobs, S3 or Azure, or Minio or Garage.

14:53.000 --> 15:00.000
Or the file system, and elastic cert if you want for full text, and LDAP for authentication.

15:00.000 --> 15:04.000
These are the expressions, this is how you configure a store work.

15:04.000 --> 15:08.000
They're optional, you can also use static values. They're used everywhere.

15:08.000 --> 15:16.000
They're compiled, and they control the different parts of the server, for example, routing of the indication span rules and so on.

15:16.000 --> 15:23.000
This is how it looks, for example, this is to determine the authentication mechanisms for incoming S&TP connection.

15:23.000 --> 15:31.000
Is a port is not 25, so it means not 25 is a submission port.

15:31.000 --> 15:33.000
Those mechanisms will be available.

15:33.000 --> 15:40.000
So it's not a script in language, this is a configuration file in Toml, so there are little bunch sections of code you see there.

15:40.000 --> 15:48.000
This is a sender writing rule, so this is a regular expression to extract parts of the envelope to write the new mail from it.

15:48.000 --> 15:58.000
And this is a dynamic routing rule, if it's basically saying that if you have a failure of the delivery attempt, use a relay host as a full byte.

15:58.000 --> 16:05.000
And this is a TLS rules for out on delivery, so it's the first delivery attempt fails.

16:05.000 --> 16:13.000
If needed to TLS, it will disable accepting valid search, because there are a lot of servers out there, we invalid TLS certificates.

16:13.000 --> 16:18.000
And then if there are more fail attempts, it will just disable start TLS.

16:18.000 --> 16:21.000
But if this is not default rules, there are just examples.

16:21.000 --> 16:27.000
So if the people want to disable TLS, it's up to their own, so this is just an example.

16:27.000 --> 16:35.000
And this is a spam field rule to determine a fake reply, tells what to look in the message.

16:35.000 --> 16:51.000
So it's a feature-rich, it includes also, you need to use elastic search, because a built-in full-text search engine that supports language detection, standing, stop or remove everything in 17 languages.

16:52.000 --> 16:55.000
She's creating supports every single extension of there.

16:55.000 --> 17:05.000
Alias has made in lease, salad dressing, cachaul, auto config, auto discover, act me with all the mechanisms with itenasy.

17:05.000 --> 17:11.000
This code has pertinent, you can manage use RACAPI to manage the server also.

17:12.000 --> 17:17.000
And also, although this is not only for small hosted, you can run stolen distributed environments.

17:17.000 --> 17:21.000
In fact, the server was designed with scalability from day one.

17:21.000 --> 17:26.000
In fact, the first version implemented the raft consensus protocol.

17:26.000 --> 17:36.000
But then later decided to move to foundation dv, because I did not like that with Paxos or this raft.

17:36.000 --> 17:38.000
Also, you need a leader at all times.

17:38.000 --> 17:41.000
So foundation dv is, you can write to any node.

17:41.000 --> 17:47.000
And so you don't have that problem with elections and finding a new leader and so on.

17:47.000 --> 17:50.000
So it was built to scale.

17:50.000 --> 17:53.000
You can load balance and scale store work.

17:53.000 --> 17:55.000
It's a coordinator free architecture.

17:55.000 --> 17:59.000
It has a glossy protocol, UDP, very similar to swim.

17:59.000 --> 18:03.000
If you're familiar with it, you can discover nodes in the cluster automatically,

18:03.000 --> 18:06.000
and also detects field failures.

18:06.000 --> 18:11.000
If something goes with a node crashes, another one can take over and refresh the queue.

18:11.000 --> 18:14.000
Take over requests and so on.

18:14.000 --> 18:16.000
Also, it's a partition tolerance.

18:16.000 --> 18:21.000
If you have some servers that cannot reach each other through this glossy protocol,

18:21.000 --> 18:24.000
you can, it will detect that those servers are alive.

18:24.000 --> 18:26.000
They will consider them.

18:26.000 --> 18:29.000
Also, you can run forward in their Kubernetes.

18:29.000 --> 18:32.000
Also, read the application.

18:32.000 --> 18:33.000
Sure.

18:33.000 --> 18:34.000
And back in.

18:34.000 --> 18:35.000
Okay.

18:35.000 --> 18:38.000
For the authentication features, it's what's open ID.

18:38.000 --> 18:45.000
Both as a provider and you can contact, also authenticate against other open ID connect servers.

18:45.000 --> 18:49.000
It supports all of the code and device flows.

18:49.000 --> 18:53.000
You can also authenticate advanced LDAP, what I said will open ID connect.

18:53.000 --> 19:00.000
SQL is supposed to factor authentication with time one time base password.

19:00.000 --> 19:02.000
Application password also.

19:02.000 --> 19:09.000
This is how the user will look set up their application password.

19:09.000 --> 19:13.000
So to fast work authentication.

19:13.000 --> 19:14.000
Okay.

19:14.000 --> 19:18.000
So it also has a lot of telemetry and observability features.

19:19.000 --> 19:21.000
You can log to open telemetry.

19:21.000 --> 19:27.000
Journality log supports metrics.

19:27.000 --> 19:28.000
Sorry.

19:28.000 --> 19:31.000
That is a logging and tracing value also supports metrics.

19:31.000 --> 19:34.000
It can be sent to open telemetry and promissios.

19:34.000 --> 19:41.000
Web hooks for events alerts, light tracing and metrics.

19:41.000 --> 19:44.000
This is how the log viewer looks like.

19:44.000 --> 19:47.000
This is if you don't use an open telemetry.

19:47.000 --> 19:49.000
This is how it's light tracing.

19:49.000 --> 19:50.000
You can see the logs.

19:50.000 --> 19:52.000
What's happening in real time.

19:52.000 --> 19:55.000
This is using event source.

19:55.000 --> 20:00.000
Or this is a web as mean.

20:00.000 --> 20:02.000
So you can manage everything from the world mean.

20:02.000 --> 20:05.000
You can access.

20:05.000 --> 20:07.000
You need to connect to a server to do anything.

20:07.000 --> 20:09.000
Great user change configuration.

20:09.000 --> 20:10.000
Everything is on from the world.

20:10.000 --> 20:12.000
Also has a self service portal.

20:12.000 --> 20:15.000
It's also developing rust.

20:15.000 --> 20:16.000
It's an SPA.

20:16.000 --> 20:18.000
So runs entirely on the browser.

20:18.000 --> 20:19.000
It's a separate application.

20:19.000 --> 20:24.000
And talk to store what over the rest API.

20:24.000 --> 20:25.000
And yeah.

20:25.000 --> 20:27.000
It's fast and responsive.

20:27.000 --> 20:29.000
So it has a dashboard.

20:29.000 --> 20:31.000
A count of main group management.

20:31.000 --> 20:33.000
Management of cues.

20:33.000 --> 20:36.000
The view in the mark and tele reports.

20:36.000 --> 20:40.000
Both for the positive receive and send.

20:40.000 --> 20:43.000
You can configure everything from there.

20:43.000 --> 20:45.000
And log viewer.

20:45.000 --> 20:47.000
This is how it looks.

20:47.000 --> 20:52.000
Just a quick overview of how it looks like.

20:52.000 --> 20:55.000
I mean, there are a lot of settings everywhere.

20:55.000 --> 21:00.000
You can you can explore this later if you like.

21:00.000 --> 21:03.000
This is how the account management looks like.

21:03.000 --> 21:08.000
So you can go there.

21:08.000 --> 21:11.000
Change authentication.

21:11.000 --> 21:14.000
Quotes.

21:14.000 --> 21:16.000
On.

21:16.000 --> 21:17.000
Memberships.

21:17.000 --> 21:21.000
And this long list of permissions that you can adjust for user.

21:21.000 --> 21:24.000
And you can bundle them also as a as a role.

21:24.000 --> 21:26.000
It's a dashboard.

21:26.000 --> 21:33.000
Of course, this is if you're using open telemetry or

21:33.000 --> 21:39.000
permission for how you can be even better dashboard and customize to you.

21:39.000 --> 21:40.000
But OK.

21:40.000 --> 21:41.000
Thank you.

21:41.000 --> 21:42.000
Thank you.

21:42.000 --> 21:57.000
Thank you for the presentation.

21:57.000 --> 21:58.000
It was amazing.

21:58.000 --> 21:59.000
I have a question.

21:59.000 --> 22:03.000
So let's suppose you start with a single service set up, right?

22:03.000 --> 22:04.000
Which is very simple.

22:04.000 --> 22:06.000
It's a binary and it can be.

22:06.000 --> 22:09.000
If one day you decide to scale it to two,

22:09.000 --> 22:12.000
complexity wise, how hard is it to do it?

22:12.000 --> 22:15.000
If you're not doing this to begin.

22:15.000 --> 22:17.000
Well, it depends on the backend.

22:17.000 --> 22:20.000
I mean, if you start with, for example, PostgresDB.

22:20.000 --> 22:22.000
And you already have the data there.

22:22.000 --> 22:23.000
It's really easy.

22:23.000 --> 22:25.000
But if you have RocksDB.

22:25.000 --> 22:27.000
No, you need to export your data.

22:27.000 --> 22:30.000
You need to import it into the new, in the cluster.

22:30.000 --> 22:33.000
That is because you're using different backend.

22:33.000 --> 22:35.000
So that is a ratio.

22:35.000 --> 22:39.000
To move from one backend to the other, is it a part for, is it?

22:39.000 --> 22:42.000
There is a tool to export the import data.

22:42.000 --> 22:43.000
Yeah.

22:43.000 --> 22:45.000
To export the entire store.

22:45.000 --> 22:47.000
And then import it again.

22:47.000 --> 22:48.000
Yeah.

22:49.000 --> 22:53.000
I'm going to ask you a question about, I'm not going to, I'm not going to,

22:53.000 --> 22:56.000
I'm going to see if you're going to import the key.

22:56.000 --> 22:58.000
I'm going to import it again.

22:58.000 --> 22:59.000
So maybe.

22:59.000 --> 23:01.000
And let's say that, like, where do I import the key?

23:01.000 --> 23:02.000
I don't want to import.

23:02.000 --> 23:03.000
And the main box has 100.

23:03.000 --> 23:04.000
100.

23:04.000 --> 23:05.000
100.

23:05.000 --> 23:06.000
You miss it a lot more.

23:06.000 --> 23:09.000
And they want to delete, like, the $14.

23:09.000 --> 23:10.000
Miss it.

23:10.000 --> 23:12.000
So how do you make the sequence?

23:12.000 --> 23:15.000
I'm going to actually miss it.

23:15.000 --> 23:17.000
Do you like to cache it somehow?

23:18.000 --> 23:19.000
Yeah.

23:19.000 --> 23:20.000
Yeah.

23:20.000 --> 23:21.000
It has cache.

23:21.000 --> 23:22.000
I'm up cache.

23:22.000 --> 23:24.000
And that it has an eviction policy.

23:24.000 --> 23:27.000
So you can configure the amount of memory.

23:27.000 --> 23:31.000
You can, you give to the cache to keep those.

23:31.000 --> 23:33.000
I'm up mailboxes in memory.

23:33.000 --> 23:34.000
But what's up?

23:34.000 --> 23:35.000
It's a million.

23:35.000 --> 23:38.000
It's a million.

23:38.000 --> 23:39.000
No, no.

23:39.000 --> 23:41.000
You limit the cache based on memory.

23:41.000 --> 23:43.000
So you tell, I want to use maximum.

23:43.000 --> 23:46.000
I know two gigabytes of memory, for example.

23:46.000 --> 23:49.000
And then you have the penalty of that story.

23:49.000 --> 23:51.000
And if you recall, you like, don't think much.

23:51.000 --> 23:53.000
Number each time you access the mailbox.

23:53.000 --> 23:55.000
Because it won't be in the cache.

23:55.000 --> 24:00.000
But yeah, it needs to, it's done when the user locks in.

24:00.000 --> 24:01.000
Why am I?

24:01.000 --> 24:04.000
And then it keeps that in memory until they, they leave.

24:04.000 --> 24:05.000
Yeah.

24:05.000 --> 24:07.000
So the question was, how I have specific numbers.

24:07.000 --> 24:09.000
Can we be trained in the foundation database?

24:09.000 --> 24:10.000
I think so.

24:10.000 --> 24:11.000
That's done.

24:11.000 --> 24:12.000
Yeah.

24:12.000 --> 24:23.000
So both the version two and the version six.

24:23.000 --> 24:24.000
Yeah.

24:24.000 --> 24:29.000
So if it's towards a proxy protocol, which is a protocol,

24:29.000 --> 24:32.000
when you run store or be kind of reverse proxy.

24:32.000 --> 24:34.000
And yes, it does.

24:34.000 --> 24:35.000
It's a both version.

24:35.000 --> 24:37.000
I remember there were two and six.

24:37.000 --> 24:39.000
But both of them are supported.

24:39.000 --> 24:42.000
You can use run store or be kind of energy next.

24:42.000 --> 24:43.000
Cali.

24:43.000 --> 24:47.000
And traffic on any other that supports.

24:47.000 --> 24:48.000
The question.

24:48.000 --> 24:51.000
What is your feedback about?

24:51.000 --> 24:52.000
Jay Mat.

24:52.000 --> 24:55.000
Oh, it was a good feeling.

24:55.000 --> 24:57.000
If I was the first thing I implemented.

24:57.000 --> 25:00.000
So it's.

25:00.000 --> 25:03.000
But it's, yeah, it needs more adoption.

25:03.000 --> 25:06.000
It must, you need, someone needs to convince Google to use it.

25:06.000 --> 25:07.000
Yeah.

25:07.000 --> 25:08.000
And the big player.

25:08.000 --> 25:10.000
Because it's hard to get out there.

25:10.000 --> 25:12.000
I need to figure it out in the question.

25:12.000 --> 25:13.000
How do you.

25:13.000 --> 25:14.000
What's the type of agenda?

25:14.000 --> 25:15.000
We will actually have an access session.

25:15.000 --> 25:16.000
It's up to do.

25:16.000 --> 25:17.000
Because there's one talk.

25:17.000 --> 25:18.000
By taking a visit.

25:18.000 --> 25:20.000
So we will have a panel on jam.

25:20.000 --> 25:23.000
Where we might talk a little bit more about that.

25:23.000 --> 25:24.000
And two more.

25:24.000 --> 25:25.000
I think you.

25:25.000 --> 25:26.000
The back.

25:26.000 --> 25:27.000
And then.

25:27.000 --> 25:28.000
Yeah.

25:28.000 --> 25:31.000
I'm wondering how are you able.

25:32.000 --> 25:33.000
And then.

25:33.000 --> 25:34.000
And then.

25:34.000 --> 25:36.000
What's the perspective of the.

25:36.000 --> 25:37.000
The example for this.

25:37.000 --> 25:38.000
Or.

25:38.000 --> 25:39.000
Or there.

25:39.000 --> 25:40.000
And then.

25:40.000 --> 25:41.000
You have done.

25:41.000 --> 25:42.000
Or.

25:42.000 --> 25:43.000
You.

25:43.000 --> 25:45.000
You.

25:45.000 --> 25:47.000
But.

25:47.000 --> 25:48.000
But.

25:48.000 --> 25:49.000
Basically.

25:49.000 --> 25:51.000
Oh, if it's.

25:51.000 --> 25:52.000
How.

25:52.000 --> 25:54.000
I can make.

25:54.000 --> 25:55.000
Let me.

25:55.000 --> 25:56.000
Let me.

25:56.000 --> 25:57.000
We.

25:57.000 --> 25:58.000
We do it.

25:58.000 --> 25:59.000
Yeah.

25:59.000 --> 26:00.000
Yeah.

26:00.000 --> 26:02.000
Well, basically because I have a sea background.

26:02.000 --> 26:06.000
And back in the days, I only have like a make file.

26:06.000 --> 26:09.000
TXT editor and a lot of segmentation faults.

26:09.000 --> 26:12.000
So.

26:12.000 --> 26:13.000
So now with.

26:13.000 --> 26:17.000
Rust is like a monorocative because it has a really good.

26:17.000 --> 26:18.000
I don't know if you're familiar with Rust.

26:18.000 --> 26:20.000
I is very strict.

26:20.000 --> 26:23.000
I remember the first time I call the the mail parcel library.

26:23.000 --> 26:25.000
I spend I don't know how long trying to.

26:25.000 --> 26:27.000
Use references and still that.

26:28.000 --> 26:30.000
You become friends with the reference checker.

26:30.000 --> 26:31.000
You.

26:31.000 --> 26:32.000
You.

26:32.000 --> 26:34.000
Everything fly because you.

26:34.000 --> 26:37.000
It prevents bugs and errors.

26:37.000 --> 26:38.000
A compile time.

26:38.000 --> 26:41.000
You can not compile broken code in many cases.

26:41.000 --> 26:45.000
So that in addition to all the tools that you have in.

26:45.000 --> 26:47.000
Around the Rust ecosystem.

26:47.000 --> 26:50.000
Uh, makes it much easier and also the experience.

26:50.000 --> 26:51.000
Like this is a.

26:51.000 --> 26:53.000
The lessons learned from the the previous two.

26:53.000 --> 26:56.000
My service I wrote in in C and Java.

26:56.000 --> 27:00.000
So I have the experience implementing these protocols.

27:00.000 --> 27:02.000
Uh, before that all their versions.

27:02.000 --> 27:05.000
So he was that and yeah and and Rust.

27:05.000 --> 27:06.000
Yeah.

27:06.000 --> 27:07.000
Okay.

27:07.000 --> 27:08.000
One final test.

27:08.000 --> 27:09.000
Yeah.

27:09.000 --> 27:11.000
And the chance to be able to use.

27:11.000 --> 27:12.000
Uh, much.

27:12.000 --> 27:13.000
It's important.

27:13.000 --> 27:14.000
I'm not in that.

27:14.000 --> 27:15.000
Right.

27:15.000 --> 27:16.000
I guess.

27:16.000 --> 27:19.000
Uh, if it's possible to use the multi-tenancy support in.

27:19.000 --> 27:20.000
Uh, interpret.

27:20.000 --> 27:21.000
No.

27:21.000 --> 27:22.000
No.

27:22.000 --> 27:23.000
No, no, no, no.

27:23.000 --> 27:25.000
That feature is available to sponsors because of those.

27:25.000 --> 27:27.000
A lot of the version has a lot of stars.

27:27.000 --> 27:30.000
Not a lot of people are contributing and to keep the.

27:30.000 --> 27:31.000
Procipes alive.

27:31.000 --> 27:34.000
I, I thought the only way was to.

27:34.000 --> 27:36.000
Uh, make these features available.

27:36.000 --> 27:37.000
You need to be enterprise.

27:37.000 --> 27:41.000
You can be a GitHub or a pent collective sponsor.

27:41.000 --> 27:42.000
Uh.

27:42.000 --> 27:44.000
You

