В Matrix есть воркеры. В PeerTube существует аналогичный механизм, но он называется по-другому и решает немного другую проблему, исходя из архитектуры самого PeerTube.
Вместо того, чтобы называть их Воркерами (Workers), в PeerTube (Node.js) эта функция реализуется через систему Фоновых задач (Job Runners), которые работают с очередями Redis.
Вот как это работает в сравнении с Synapse:
Архитектурное различие
Главное отличие в том, что Synapse (Python) — это исторически синхронный монолит, который нужно было принудительно разбивать на части (Воркеры), чтобы использовать многоядерные процессоры.
PeerTube написан на Node.js, который изначально асинхронен и неблокирующий. Он лучше справляется с одновременными сетевыми подключениями. Поэтому ему не нужен "воркер" для разгрузки сетевого трафика.
Его основная проблема — тяжелые CPU-задачи, а не сетевая конкуренция.
Аналог Воркеров в PeerTube: Job Runners
В PeerTube используется принцип разделения процессов для выделения самых ресурсоемких задач:
Процесс/Роль
Synapse (Matrix Workers)
PeerTube (Job Runners)
Главный сервер
Обработка клиентских API, запись в БД.
Обслуживание интерфейса, стриминг видео (Web Server).
Фоновые процессы
Federation Sender/Reader, Event Signer (разрешение состояний).
Транскодирование видео (самая тяжелая задача), Обработка ActivityPub.
Инструмент связи
Redis (для обмена данными и очередями).
Redis (для очередей задач).
Основная нагрузка PeerTube: Перекодирование
Самая тяжелая задача в PeerTube — это перекодирование (transcoding) видео, загружаемого пользователями, в разные форматы и разрешения (1080p, 720p, 480p). Это операция, которая может нагружать CPU на 100% в течение длительного времени.
В PeerTube эта задача помещается в очередь Redis.
Вы запускаете отдельные процессы (Job Runners) — часто на отдельном физическом сервере, чтобы не мешать основному сайту — которые извлекают эти задачи из очереди и выполняют перекодирование с помощью ffmpeg.
Результат: Ваша основная веб-страница (там, где пользователи смотрят видео и общаются) остается быстрой и отзывчивой, в то время как другие машины или ядра обрабатывают тяжелые видеозадачи в фоновом режиме.
Вывод
В обоих случаях (Matrix и PeerTube) архитектура масштабирования сводится к одному и тому же принципу:
Отделить медленные, ресурсоемкие фоновые операции от быстрых, ориентированных на пользователя операций.
В Matrix это Федерация/Разрешение состояний.
В PeerTube это Перекодирование видео.