Федерация
Основные задачи Федерации
- Для UnitNode, возможность создать связь между инстансами для получения данных с qos <= 1
- Синхронизация публичных Repo Registry, для единого реестра доступных репозиториев
- Возможность для пользователя, полностью выкачать свои данные - сделать бекап своего аккаунта
Модерация инстансов в федерации
- Автоматический бан (инкремент 1, 7, 30 дней) Внешних UnitNode, которые превышают лимиты, между инстансами
- Автоматическая система прерывания доверия между инстансами с добавлением инстанса в чёрный список
- Ручное отключение администратором инстансов по чёрным спискам. Для крайних случаев
Реализация через MessageProcessor
DataPipe -> MessageProcessor
gRPC, сообщения подписываются сертификатами, статусная модель нагрузки от федерации
Задачи сервиса
- Сервис подписан на все сообщения с форматом +/+/pepeunit и +/+
- Сервис отделяет внешние сообщения от внутренних по domain.com
- Сервис отсылает по gRPC собщения во внешние инстансы, там их получает точно такой же сервис
- Сервис получает по gRPC внешние сообщения и переотправляет их в EMQX
- Сервис устанавливает набор параметров сообщения, ttl и тд, чтобы не было петель и дублей
- Сервис считает MPS для внешних доменов, в разрезе каждого домена и каждого топика
- Сервис принимает решение о прерывании доверия между инстансами
- Сервис принимает решение о блокировке Unit
- Сервис содержит в себе конфиг всех связей
- Сервис содержит в себе информацию о балансах