New We are sorting MAX channels into categories and territories. Read the news

На этот раз уже не столько про код, сколько про архитектуру.



Нужно было спроектировать интеграцию 1С → Go → Yandex 360 для отправки email и сбора событий почты.

Самое интересное для меня здесь — не сама отправка письма, а то, что происходит вокруг неё: очередь, повторные попытки, падение сервиса, защита от дублей и корреляция событий между 1С, нашим сервисом и Yandex.

Например, если SMTP-запрос завершился таймаутом, нельзя просто отправить письмо ещё раз — сначала нужно понять, не было ли оно уже принято. Для этого предусмотрена дополнительная проверка Yandex.

В результате получилась архитектура, в которой состояние хранится в БД, обработка идёт асинхронно, события собираются отдельно, а падение Go-сервиса не приводит к потере очереди.

Кода не требовалось — основной упор был именно на проектирование решения.

Пожалуй, такие задания мне сейчас даже интереснее обычных CRUD.
Views: 29
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go