temporalio/temporal

github.com
Открыть сайт

Конструктор сценариев в RetailCRM и при чем тут Temporal [Часть 1] В последнем релизе RetailCRM мы запустили раздел Сценарии.

Конструктор сценариев в RetailCRM и при чем тут Temporal [Часть 1] В последнем релизе RetailCRM мы запустили раздел Сценарии. Если объяснять просто, можно накидывать на холсте сложную логику процессов, в первую очередь коммуникации с клиентами через email, чаты, sms, но не только. А чтобы не составлять руками, научили AI-помощника собирать сценарии по вводным от пользователя. Но обо всём по порядку. Модуль сложный и интересный, кажется, тянет на серию постов. Расскажу сначала, в чем были технические сложности задачи. Вводные были таковы: 1. Создание и запуск динамических workflow Пользователь должен сам настроить логику сценария, а мы её выполнить 2. Асинхронное выполнение сценариев Сценарий должен запуститься по событию и пройти свой путь, не блокируя точку запуска сценария. События могут вызываться часто). 3. Распределенность выполнения сценария Разные функции RetailCRM физически локализованы в разных сервисах. Созданное решение должно обеспечивать распределенное прохождение разных частей сценария в разных сервисах. 4. Протяженное время выполнения сценария Должны быть блоки ожидания от нескольких минут до месяцев. Сценарии могут выполняться долго и не должны «ломаться» при деплоях новых версий. Примеры: • отправили письмо → ждем час → проверяем, что письмо не открыто → отправляем чат-сообщение • заказ перешел в статус Выполнен → ждем 3 месяца → проверяем, что за 3 месяца у клиента не было заказов → отправляем каскад имейл/чат/смс с предложением повторить заказ 5. Отказоустойчивость выполнения сценариев Должна быть заложена обработка неудачного выполнения шагов. Это может быть временная недоступность внешних сервисов (например, email-транспорт), внутренних сервисов, временные ошибки. Возможность задать логику ретраев и времени ожидания выполнения шага. 6. Версионность сценариев Например, пользователь создал первую версию сценария и запустил её. После этого изменил флоу сценария и запустил обновленную версию. Все срабатывания первой верс

Характеристики

Тип Инструмент
КатегорияGitHub-проекты / Из awesome-списка
Язык сайтаen
GitHubtemporalio/temporal

Исходный код

temporalio/temporal

Найден в источниках

Похожие в разделе «GitHub-проекты»

Предложить сайт в каталог

Пришлите ссылку — остальное мы выясним сами.

Мы рассмотрим, что вы прислали, и добавим в каталог, если подойдёт.

Не знаете, как внедрить? Мы поможем

Расскажите про задачу — подберём инструменты и подскажем, с чего начать.

0 / 5000
Проверочный код

Поля со звёздочкой обязательны. Данные используются только для ответа.