Разработка распределенного сервиса отправки уведомлений на разные источники
Стек: .net8.0
- Общая библиотека
CoreLib/CoreLib.sln - микросервисы для отправки уведомлений
SMSSender/SMSSender.slnWhatsappSender/WhatsappSender.slnEmailSender/EmailSender.sln
Contracts/Contracts.sln- контракты для связывания Notifications Gateway и Notification MicroservicesMessagePublisher/MessagePublisher.sln- Notifications Gateway
- Логирование с помощью Serilog.
- Реализованы отправления в следующих каналах: SMS, WhatsApp, Email.
- В качестве MessageBroker используется RabbitMQ.
- База данных - PostgreSql
- Для каждого канала своя очередь сообщений. Результаты каждый микросервис отправки записывает в единую очередь. За ней следит Notifications Gateway, актуализирует статусы отправлений, и в случае неуспешного результата помещает заново в очереди микросервисов отправлений.
Собрать билды в следующем порядке:
CoreLib.sln- Senders:
SMSSender.sln,WhatsappSender.slnEmailSender.sln
Contracts.slnMessagePublisher.sln