atls / nestjs

NestJS Custom Workshop
BSD 3-Clause "New" or "Revised" License
33 stars 8 forks source link

NestJS GraphqL Redis Subscriptions #314

Closed TorinAsakura closed 3 days ago

TorinAsakura commented 3 days ago

С чем связан запрос на фичу?

NestJS не поддерживает из коробки данный подход

Расскажите как вы это себе видите

  1. Подключение Redis как PubSub: Использует RedisPubSub из graphql-redis-subscriptions для работы с подписками в GraphQL, используя Redis в качестве транспорта для сообщений.
  2. Переопределение сериализатора и десериализатора: Использует telejson для сериализации/десериализации сообщений, что позволяет сохранять сложные структуры данных.
  3. Использование RedisModule: Импортирует кастомный RedisModule (@atls/nestjs-redis) и создаёт инстансы publisher и subscriber через RedisFactory.
  4. Декларативная регистрация: register метод позволяет гибко настраивать модуль с разными опциями, указывая специфичные для проекта настройки.

Зачем это нужно?

  1. Масштабируемые GraphQL подписки: Использование Redis позволяет обрабатывать подписки в распределённой среде, что улучшает масштабируемость GraphQL сервера.
  2. Централизация конфигурации: Модуль позволяет удобно настраивать PubSub в одном месте, используя RedisModule.

Материалы

https://www.apollographql.com/blog/graphql-subscriptions-with-redis-pub-sub