Skip to content

nekishdev/notification-service

Repository files navigation

Проект онлайн-кинотеатра

https://github.com/nekishdev/notifications_sprint_1

Для ревьюера

Просим прощения, в этом спринте в связи с работой и другими обстоятельствами, не успели до конца качественно подготовить проект. Хочу заранее написать какие замечания мы сами видим и как бы мы их решили, если бы было больше времени.

  • Сейчас шедулер отправляет только единичные письма. Не успели дописать, чтобы он брал рассылки и по каждому адресу пулял в апи запрос send.
  • Воркер, который отправляет письма, жёстко завязан на mail. Вместо этого нужно внедрить абстракцию типа Sender, и сделать MailSender::Sender , и прокидывать нужный класс через DI, чтобы код был завязан только на абстракцию.
  • Не внедрены рассылки по шаблону. Мы бы сделали так. В админке хранятся шаблоны. И тут 2 варианта: либо в шаблоне только данные юзера, либо другие какие-то данные (чеки, бонусы и тд). И скорее всего первый вариант это не из реальной жизни. Ориентируясь на второй вариант, у нас в админке будут лежать шаблоны. Если нужный сервис хочет отправить письмо по шаблону , он закидывает в отдельную очередь сообщение с кодом шаблона и данными для рендера. Воркер из этой очередь вычитывает это сообщение, из админки достает тело шаблона, рендерит его с данными и результат отправляет в апи нотификации, где оно закинется уже в очередь для отправки. Если сервису нужно быстро отдавать ответ, но при этом нужно отправить письмо с кучей разных данных, то это можно сделать через другую очередь, которая рядом с этим сервисом будет лежать и собирать данные для шаблона

Сервисы

Действия перед запуском

  • Создать общую сеть чтобы сервисы могли достучаться друг до друга: docker network create backend-external (сеть backend-external уже прописана в env всех сервисов)

About

Репозиторий для сервиса нотификаций

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •