Проектные работы в этом модуле в команде. Задания на спринт вы найдёте внутри тем.
Командный репозиторий 10го спринта - https://github.com/ilya-spy/notifications_sprint_1.git
@bairachny.daniil @ilyaspy
тимлид - @ilyaspy
Программная Архитектура сервиса нотификаций в данной реализации предполагает наличие следующих программных компонентов и микросервисов:
- Кофнигурационная база данных с типами уведомлений и метаданными трекинга последнего события
- Сервис (воркер) немедленных емейлов для важных событий через АПИ сервиса рассылки (300+ сообщ/день)
- Сервис (воркер) отложенных емейлов - порционный асинхронный сервис рассылок по массоввым группам
- Балансировщик RabbitMQ отправителей и воркеров для контроля масссовых рассылок
- Сервис-шаблонизатор для персонализации сообщений
- Адаптер доступа к шаблонизатору и планировщику по АПИ
- Адаптер доступа к шаблонизатору и планировщику по веб-сокет (админ-панель-приложение)
- Сервис хранения истории отправленных уведомлений в Кафка
Архитектура Решений сервиса нотификаций в данной реализации предполагает наличие следующиъ целевых сценариев использования.
- Связка UGС -> API Notifications для сводных отчетов о лайках
- Связка Admin Panel <- websocket -> Notifications для ручной/тестовой отправки
- Связка Admin Panel -> API Notifications для ручной настройки расписания отправки уведомлений
- Связка Admin Panel -> Шаблонизатор для управления персонализацией тела ручных рассылок
- Связка Планировщик -> Исполнители (воркеры) для создания периодических (недельных) событий
Полный стенд решения -
make notifications\dev\setup
make notifications\dev\teardown
Настройка стенда api notifications:
make frontend\dev\setup
-> startmake frontend\dev\teardown
-> finish
Настройка стенда worker:
make worker\dev\setup
-> startmake worker\mailer
-> loginmake worker\dev\teardown
-> finish
Настройка стенда admin:
make admin\dev\setup
-> startmake admin\dev\teardown
-> finish
Базовая настройка окружения - make pipenv\base
Настройка dev окружения:
make pipenv\dev\setup
make pipenv\dev\teardown
Настройка prod окружения:
make pipenv\prod\setup
make pipenv\prod\teardown