Skip to content

Федерация

Основные задачи Федерации

  1. Для UnitNode, возможность создать связь между инстансами для получения данных с qos <= 1
  2. Синхронизация публичных Repo Registry, для единого реестра доступных репозиториев
  3. Возможность для пользователя, полностью выкачать свои данные - сделать бекап своего аккаунта

Модерация инстансов в федерации

  1. Автоматический бан (инкремент 1, 7, 30 дней) Внешних UnitNode, которые превышают лимиты, между инстансами
  2. Автоматическая система прерывания доверия между инстансами с добавлением инстанса в чёрный список
  3. Ручное отключение администратором инстансов по чёрным спискам. Для крайних случаев

Реализация через MessageProcessor

DataPipe -> MessageProcessor

gRPC, сообщения подписываются сертификатами, статусная модель нагрузки от федерации

Задачи сервиса

  1. Сервис подписан на все сообщения с форматом +/+/pepeunit и +/+
  2. Сервис отделяет внешние сообщения от внутренних по domain.com
  3. Сервис отсылает по gRPC собщения во внешние инстансы, там их получает точно такой же сервис
  4. Сервис получает по gRPC внешние сообщения и переотправляет их в EMQX
  5. Сервис устанавливает набор параметров сообщения, ttl и тд, чтобы не было петель и дублей
  6. Сервис считает MPS для внешних доменов, в разрезе каждого домена и каждого топика
  7. Сервис принимает решение о прерывании доверия между инстансами
  8. Сервис принимает решение о блокировке Unit
  9. Сервис содержит в себе конфиг всех связей
  10. Сервис содержит в себе информацию о балансах