Описание режима федерации
Режим федерации — это возможность создавать комнаты/каналы между разными серверами Squadus и приглашать в комнаты пользователей из разных серверов. Для работы режима федерации на сервера группы infra должен быть установлен сервис Matrix Synapse.
В качестве базы данных в Matrix Synapse по умолчанию используется реляционная база данных с открытым кодом PostgreSQL. Squadus регистрируется как Application Service (служба приложений) в Matrix Synapse и взаимодействует с ним через Application Service API.
Matrix-серверы взаимодействует между собой через Server-Server API. Любое событие в федеративной комнате (отправка сообщения, реакция на сообщение, изменения названия комнаты, добавление нового пользователя и т.д.), произошедшее на одном сервере, проходит через эту цепочку и записывается в базу другого сервера Squadus.
Каждый аккаунт однозначно определяется логином и сервером, например, @alice:example.com. Комната определяется ее именем и сервером, например, #room:example.com. Matrix Synapse не хранит данные адреса почты, номера телефона, но хранит необратимые хеш-функции и осуществляет поиск именно по ним.