Всем привет. Немного офтоп))
Делаю сервис уведомлений. В нем три канала доставки: смс, почта, в сервис.
Всё вроде бы шло хорошо. Сделал каналы, типы уведомлений, подписчиков. Как дошло дело до проектирования отправки и шаблонов писем, то немного зашёл в ступор... У меня есть сейчас система рассылки сообщений в ней тоже есть каналы рассылки: смс и маил. Шаблоны писем.
Вопросы:
1. Стоит ли проектировать в системе уведомлений реализацию отправки сообщений по каналам, шаблоны писем, не смотря на то, что они уже есть такие же в системе рассылки? Либо мне из системы уведомлений просто передавать в систему рассылки?
2. Может быть объединить эти два сервиса, раз они так тесно связаны?
Быстрая и не факт что правильная декомпозиция. Сообщения и уведомления - это, похоже, две разные бизнес-сущности, но в словаре предметной области вам стоит как следует объяснить разницу между ними.
Далее есть некий набор правил, по которым они попадают к адресатам, это подписки и настройки. Эти правила также разные для сообщений и для уведомлений, часть этих правил вообще относится к пользователю.
В момент создания сообщений и уведомлений из этих правил становится ясно, к каким адресатам они должны попасть и по каким каналам, т.е. происходит диспетчеризация. Здесь уже создаются сущности транспортного уровня "письмо", "SMS", "пуш", "сообщение в сервисе" (и в процессе создания письма например вызывается сервис его форматирования).
Дальше они попадают в сервисы, осуществляющие доставку и обработку всех ошибок доставки.
Итого: две сущности "уведомление" и "сообщение", два диспетчера, вспомогательные форматтеры, сервисы доставки по числу каналов связи. Кажется так.