Сервис отправки уведомлений
Добрый день, друзья!
Сегодня я расскажу о своем опыте в разработке сервиса для отправки уведомлений. Однажды ко мне обратился клиент из Канады с просьбой разработать удобный сервис уведомлений с API для медицинского приложения. Его интересовали 3 способа коммуникации: SMS, Email и Push.
Проект заинтересовал меня, и я решил взять его в работу, несмотря на отсутствие четкого ТЗ. После выяснения всех деталей с клиентом, я приступил к написанию ТЗ, проектированию архитектуры и последующей разработке. Было решено использовать Node.js и микросервисы. Каждый способ коммуникации был реализован в виде отдельного сервиса.
Структура микросервисов:
Микросервисная архитектура была выбрана для обеспечения гибкости и масштабируемости системы. Каждый из микросервисов отвечал за один способ коммуникации (SMS, Email или Push), что позволило эффективно управлять каждым из них и масштабировать их по мере необходимости. Микросервисы взаимодействовали друг с другом с использованием RabbitMQ, что обеспечивало надежную передачу сообщений между ними.
Безопасность:
Безопасность данных и обработки уведомлений была одним из приоритетов. Я использовал JWT для аутентификации и авторизации запросов к API. Это позволило обеспечить доступ только авторизованным пользователям и предотвратить несанкционированный доступ к сервису.
Сложности и решения:
В ходе разработки возникали различные сложности, включая оптимизацию расходов на отправку SMS в разных странах. Было проведено тщательное сравнение различных вариантов и выбрано оптимальное решение, которое позволило клиенту сэкономить средства.
Отправку Email осуществляли через SMTP, за Push-уведомления отвечал Google Cloud Messaging (GCM), а для SMS мы использовали Twilio, как самый оптимальный.
Перспективы и будущее:
Сервис, который был разработан, стал гибким и масштабируемым, с удобным API, документацией, шаблонами сообщений и отправкой по расписанию. В будущем есть возможность расширять его функциональность и добавлять новые функции и способы отправки. Можно сказать, что получился некий аналог OneSignal, с которым тоже пришлось работать позднее.
Проект получился со следующим стеком:
NestJS, TypeScript, RabbitMQ, Mongoose, Redis, JWT
Также хочу добавить, что строить микросервисы на NestJS очень приятно. Да и в целом, я обожаю Nest. Я сделал на него ставку несколько лет назад, постепенно изучая его возможности, следя за развитием и всегда оставаясь в курсе последних новостей. Сейчас я считаю, что это один из самых перспективных фреймворков для бекенда.
#опыт #проект #nodejs #nestjs #микросервисы
Добрый день, друзья!
Сегодня я расскажу о своем опыте в разработке сервиса для отправки уведомлений. Однажды ко мне обратился клиент из Канады с просьбой разработать удобный сервис уведомлений с API для медицинского приложения. Его интересовали 3 способа коммуникации: SMS, Email и Push.
Проект заинтересовал меня, и я решил взять его в работу, несмотря на отсутствие четкого ТЗ. После выяснения всех деталей с клиентом, я приступил к написанию ТЗ, проектированию архитектуры и последующей разработке. Было решено использовать Node.js и микросервисы. Каждый способ коммуникации был реализован в виде отдельного сервиса.
Структура микросервисов:
Микросервисная архитектура была выбрана для обеспечения гибкости и масштабируемости системы. Каждый из микросервисов отвечал за один способ коммуникации (SMS, Email или Push), что позволило эффективно управлять каждым из них и масштабировать их по мере необходимости. Микросервисы взаимодействовали друг с другом с использованием RabbitMQ, что обеспечивало надежную передачу сообщений между ними.
Безопасность:
Безопасность данных и обработки уведомлений была одним из приоритетов. Я использовал JWT для аутентификации и авторизации запросов к API. Это позволило обеспечить доступ только авторизованным пользователям и предотвратить несанкционированный доступ к сервису.
Сложности и решения:
В ходе разработки возникали различные сложности, включая оптимизацию расходов на отправку SMS в разных странах. Было проведено тщательное сравнение различных вариантов и выбрано оптимальное решение, которое позволило клиенту сэкономить средства.
Отправку Email осуществляли через SMTP, за Push-уведомления отвечал Google Cloud Messaging (GCM), а для SMS мы использовали Twilio, как самый оптимальный.
Перспективы и будущее:
Сервис, который был разработан, стал гибким и масштабируемым, с удобным API, документацией, шаблонами сообщений и отправкой по расписанию. В будущем есть возможность расширять его функциональность и добавлять новые функции и способы отправки. Можно сказать, что получился некий аналог OneSignal, с которым тоже пришлось работать позднее.
Проект получился со следующим стеком:
NestJS, TypeScript, RabbitMQ, Mongoose, Redis, JWT
Также хочу добавить, что строить микросервисы на NestJS очень приятно. Да и в целом, я обожаю Nest. Я сделал на него ставку несколько лет назад, постепенно изучая его возможности, следя за развитием и всегда оставаясь в курсе последних новостей. Сейчас я считаю, что это один из самых перспективных фреймворков для бекенда.
#опыт #проект #nodejs #nestjs #микросервисы
🔥1