Size: a a a

Software Design/Architecture/Zen

2021 July 05

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Добрый день!

У меня в компании несколько сайтов (внутренние и внешние) рассылают различные уведомления на почту / телеграм.

Сейчас каждый сайт делает это сам. Периодически возникают проблемы с доставкой, приходится каждый раз решать.

Хочу сделать отдельный сервис, куда все сайты будут по апи делать запрос "хочу вот это отправить вот туда", а этот сервис уже сам будет решать каким образом он это сделает.

Здравая идея или нет? Какие подводные камни могут быть?
источник

AE

Alexey Ermakov in Software Design/Architecture/Zen
пока только один придумать получается: если сервис упадёт, отправить уведомление не сможет никто
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
на этот случай можно в критичных случаях самостоятельно отправлять без сервиса
источник

AE

Alexey Ermakov in Software Design/Architecture/Zen
эт уже интересная архитектура получается
источник

RS

Rus Skazkin 🐘 in Software Design/Architecture/Zen
Там не должно быть ещё и очереди отдельным сервисом?
источник

АР

Андрей Радионов... in Software Design/Architecture/Zen
сделайте очередь из сообщений, и эту очередь уже обрабатывайте, сервисом/скриптом/чем угодно, тогда руками решать не придется
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
я вот и думал, что очередь будет в этом сервисе
источник

АР

Андрей Радионов... in Software Design/Architecture/Zen
только сервис очередей с транспортом не связывайте,  будет проще масштабировать, расширять/менять транспорт доставки
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
но это выйдет, что сначала запрос к сервису очередей, потом сервис очередей запрос к сервису транспорта... так?
источник

АР

Андрей Радионов... in Software Design/Architecture/Zen
да, можно так реализовать
источник

k

knopkod4v in Software Design/Architecture/Zen
а какие проблемы с доставкой?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Гугл иногда не доставляет, если например, резко отправить больше чем обычно. Несмотря на то, что все рекомендации SPF, DMARC, DKIM выполнены
источник

k

knopkod4v in Software Design/Architecture/Zen
интересно, а как ты узнаёшь, что письмо не доставлено? Или оно прям сразу падает во время отправки?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
в логах видно
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
там приходит ответ гугла, что мы вам ограничили отправку временно
источник

AE

Alexey Ermakov in Software Design/Architecture/Zen
в редис кидай запросы на отправку, а сервис пусть периодически проверяет
источник

АР

Андрей Радионов... in Software Design/Architecture/Zen
что делать с сообщениями, которые не отправились? возвращать в очередь?
источник

AE

Alexey Ermakov in Software Design/Architecture/Zen
удалять из очереди, если отправились
источник

АР

Андрей Радионов... in Software Design/Architecture/Zen
а если нет?
источник

k

knopkod4v in Software Design/Architecture/Zen
а как тогда автоматически проверять будешь? Парсить логи?
Ну вот отправил пачку писем - гугл прислал, что ограничена отправка, какие письма надо переотправить?
Вообще ХЗ, можно же как-то эти ограничения на количество поднимать в гугле?
источник