Когда скорость может быть проблемой🚀
Логически эта схема абсолютно правильная. Мы отправляем запрос к внешнему сервису, он выполняет свою работу и возвращает ответ — тогда процесс продолжается.
Но есть нюансы:👀 синхронная задача в вызываемом процессе может выполниться очень быстро, за миллисекунды⚡️ . И тогда родительский процесс просто не успеет поймать ответное событие.🤷
Ведь что там происходит под капотом:
Перед Receive task у нас граница транзакции. Значит, процесс записывает свое состояние в базу. Потом создает подписку на получение сообщения. И тоже сохраняет ее в БД.
Все это занимает какое-то время — а внешний процесс уже успел начаться и кончиться, его сообщение улетело в никуда!😢
И как быть? — расскажем об этом завтра!😎
А пока помните, что моделируя процессы с сообщениями, нужно думать не только о логике, но и о том, как это исполняется в реальности.
📌Поделитесь этим с коллегами, чтобы они не попадали в такие ловушки!
Логически эта схема абсолютно правильная. Мы отправляем запрос к внешнему сервису, он выполняет свою работу и возвращает ответ — тогда процесс продолжается.
Но есть нюансы:
Ведь что там происходит под капотом:
Перед Receive task у нас граница транзакции. Значит, процесс записывает свое состояние в базу. Потом создает подписку на получение сообщения. И тоже сохраняет ее в БД.
Все это занимает какое-то время — а внешний процесс уже успел начаться и кончиться, его сообщение улетело в никуда!
И как быть? — расскажем об этом завтра!😎
А пока помните, что моделируя процессы с сообщениями, нужно думать не только о логике, но и о том, как это исполняется в реальности.
📌Поделитесь этим с коллегами, чтобы они не попадали в такие ловушки!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
Продолжаем тему 🚀 — вот ответ на недавний вопрос:
Когда скорость может быть проблемой
Event-driven — классная архитектура и весьма удобно может моделироваться в BPMN при помощи событий. Но, как мы видели вчера, в реальности события могут прилетать слишком быстро и ломать весь паттерн 💥
Что делать? — Искусственно тормозить и ставить таймауты? ⏱️
Плохой вариант — зачем своими руками рубить производительность? 🪓
Проблема слишком быстрого отклика внешних процессов легко устраняется посредством
Процесс просто говорит, что у него есть задача для определенного воркера — и ждет, пока тот её исполнит🤖
Сценарий в точности такой же, как с
А кто её делает — человек, робот, кот учёный🐈⬛ , искусственный разум 🧠 или тупой алгоритм — ему совершенно не важно.
С точки зрения транзакционности, user task и external task — это состояния ожидания 🕒
Подходя к такой задаче, процесс записывает свои данные в БД, публикует задачу и ловит событие
И всё это уже реализовано на уровне движка — ничего дополнительно городить не надо 🏗️
Просто используйте
Так что полиглотность, о которой так часто любят говорить, то есть возможность реализовывать внешние задачи на любом языке (Java, Python, C++, JavaScript и т.д.) — вовсе даже не главное свойство
Об этом рассказывает Бернд Рюккер на свомем вебинаре, конкретно про этот кейс смотрите на 28-й минуте:
👉 https://www.youtube.com/watch?v=H7XkztGj69w
Когда скорость может быть проблемой
Event-driven — классная архитектура и весьма удобно может моделироваться в BPMN при помощи событий. Но, как мы видели вчера, в реальности события могут прилетать слишком быстро и ломать весь паттерн 💥
Что делать? — Искусственно тормозить и ставить таймауты? ⏱️
Плохой вариант — зачем своими руками рубить производительность? 🪓
Проблема слишком быстрого отклика внешних процессов легко устраняется посредством
external task 🧩Процесс просто говорит, что у него есть задача для определенного воркера — и ждет, пока тот её исполнит
Сценарий в точности такой же, как с
user task'ами — процесс ничего не знает об исполнителе: ему главное, чтобы работа была сделана ✅А кто её делает — человек, робот, кот учёный
С точки зрения транзакционности, user task и external task — это состояния ожидания 🕒
Подходя к такой задаче, процесс записывает свои данные в БД, публикует задачу и ловит событие
task completed 📬И всё это уже реализовано на уровне движка — ничего дополнительно городить не надо 🏗️
Просто используйте
external task, и вам не придётся ломать себе голову, успеет или не успеет основной процесс поймать отклик от внешнего.Так что полиглотность, о которой так часто любят говорить, то есть возможность реализовывать внешние задачи на любом языке (Java, Python, C++, JavaScript и т.д.) — вовсе даже не главное свойство
external task 🌍Об этом рассказывает Бернд Рюккер на свомем вебинаре, конкретно про этот кейс смотрите на 28-й минуте:
👉 https://www.youtube.com/watch?v=H7XkztGj69w
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from Архитектура ИТ-решений
📆 5 ноября 10:30 MSK
Приглашаю вас на очередной, безусловно, бесплатный вебинар Первые десять лет Architecture as Code
Архитектура как код (Architecture as Code, AaC) — это подход, при котором архитектура представляется в виде декларативного машиночитаемого описания, развиваемого, обновляемого и отслеживаемого с использованием инструментов непрерывной интеграции и систем контроля версий
Этот подход существует уже около 10 лет и имеет как ярых приверженцев, так и откровенных скептиков. Я постараюсь остаться посередине и в своем выступлении расскажу о том, что уже реально получилось в подходе architecture as code, а что пока остается невыполненными обещаниями, а так же отвечу на ваши вопросы
Подробности и регистрация: https://mxsmirnov.timepad.ru/event/3648919/
Приглашаю вас на очередной, безусловно, бесплатный вебинар Первые десять лет Architecture as Code
Архитектура как код (Architecture as Code, AaC) — это подход, при котором архитектура представляется в виде декларативного машиночитаемого описания, развиваемого, обновляемого и отслеживаемого с использованием инструментов непрерывной интеграции и систем контроля версий
Этот подход существует уже около 10 лет и имеет как ярых приверженцев, так и откровенных скептиков. Я постараюсь остаться посередине и в своем выступлении расскажу о том, что уже реально получилось в подходе architecture as code, а что пока остается невыполненными обещаниями, а так же отвечу на ваши вопросы
Подробности и регистрация: https://mxsmirnov.timepad.ru/event/3648919/
👍7
Давайте посмортрим, как называлось то, чем мы занимаемся с древних времен до наших дней!
👉Читайте на Хабре: https://habr.com/ru/articles/961218/
👉Читайте на Хабре: https://habr.com/ru/articles/961218/
👍7
После длинных выходных ждем на вебинар — поговорим про оргструктры в процессах и не только!
Forwarded from Jmix.ru
Спикер: Станислав Макаров, Продуктовый аналитик платформы Jmix
Приглашаем вас на вебинар, где в уютной атмосфере живого общения, как это обычно и происходит на вебинарах у Стаса 😉, разберете одну из самых сложных задач для реализации на практике — работу с оргструктурой.
Дата: 6 ноября
Время: 16:00-17:00 по мск
Вместе со Стасом вы узнаете:
Приходите, забирайте экспертные знания из первых рук!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Когда надо свести потоки после шлюза, как вы поступаете?
Брюс Сильвер, наш "икона стиля", ратует за первый вариант — дескать, не надо громоздить лишние ромбики, и так все понятно.
Денис Котов, a.k.a.
Чью сторону выбрать?
Мне, как разработчику, второй вариант ближе — это как открыть скобку и закрыть скобку. Но бывают расклады, когда эти линии тянуть нужно довольно далеко.
Первый вариант тоже хорош — если можно без чего-то обойтись, то почему бы нет? Схема станет просторнее, меньше лишних деталей. Семантика все равно прочитывается.
Сложный выбор!
Брюс Сильвер, наш "икона стиля", ратует за первый вариант — дескать, не надо громоздить лишние ромбики, и так все понятно.
Денис Котов, a.k.a.
StormBPMN, настаивает, что сводящий шлюз нужен обязательно.Чью сторону выбрать?
Мне, как разработчику, второй вариант ближе — это как открыть скобку и закрыть скобку. Но бывают расклады, когда эти линии тянуть нужно довольно далеко.
Первый вариант тоже хорош — если можно без чего-то обойтись, то почему бы нет? Схема станет просторнее, меньше лишних деталей. Семантика все равно прочитывается.
Сложный выбор!
👍7❤1🤔1
Впервые будет показана новая экспериментальная разработка Jmix —
модуль управления оргструтурой!
С его помощью вы сможете назначать исполнителей в процессах не просто по
username, как это было раньше, а по должности и подразделению!Для этого есть новые фичи в BPM моделере:
Приходите!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
По пятницам мы обычно постим что-то забавное — мемы, шутки про BPM и всякое такое.😎
А сегодня держите магический квадрат Гартнера, который теперь обозначает то, что раньше было BPM.🤷
Он действительно презабавный — в одну лодку собрали всех. Тут и лоукоды всех мастей, и RPA, и даже ECM немножко — и наши любимые BPM-движки.👀
Весьма странное объединение всего и вся. В общем, с пятницей вас, коллеги-лодочники!🎉
А сегодня держите магический квадрат Гартнера, который теперь обозначает то, что раньше было BPM.🤷
Он действительно презабавный — в одну лодку собрали всех. Тут и лоукоды всех мастей, и RPA, и даже ECM немножко — и наши любимые BPM-движки.
Весьма странное объединение всего и вся. В общем, с пятницей вас, коллеги-лодочники!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6❤1👍1
💡 BPMN vs n8n: что выбрать для автоматизации?
BPMN (Business Process Model and Notation) — это стандартизированная графическая нотация для визуализации сложных процессов. Она помогает командам говорить на одном языке, оптимизировать процессы и соблюдать регламенты.
n8n и похожие инструменты — это low-code платформы для гибкой автоматизации без глубокого программирования. Идеальны для быстрых интеграций и уникальных задач, где BPMN может быть слишком громоздкой.
Плюсы BPMN:
✅ Стандартизация — единый язык для всех участников
✅ Масштабируемость — подходит и для малого бизнеса, и для корпораций
✅ Сотрудничество — удобная документация для кросс-функциональных команд
Плюсы n8n:
⚡ Гибкость — легко создавать уникальные сценарии
🚀 Быстрое развертывание — запуск автоматизации за считанные минуты
🔌 Интеграции — более 200 готовых подключений к сервисам
Сравнение:
BPMN — формальная, сложная в освоении, идеальна для крупных компаний и строгих регламентов
n8n — гибкая, простая, подходит для стартапов и быстрых изменений
Идеальные сценарии:
BPMN: крупные организации, сложные процессы, много участников
n8n: стартапы, малый и средний бизнес, быстрые прототипы и интеграции
💡 Вывод: выбирайте инструмент исходя из целей и масштаба компании. BPMN для структурированной работы, n8n для гибкой и быстрой автоматизации.
👉 читайте на Хабре:
https://habr.com/ru/articles/965964/
#bpmn #n8n #моделирование #стандарты
BPMN (Business Process Model and Notation) — это стандартизированная графическая нотация для визуализации сложных процессов. Она помогает командам говорить на одном языке, оптимизировать процессы и соблюдать регламенты.
n8n и похожие инструменты — это low-code платформы для гибкой автоматизации без глубокого программирования. Идеальны для быстрых интеграций и уникальных задач, где BPMN может быть слишком громоздкой.
Плюсы BPMN:
✅ Стандартизация — единый язык для всех участников
✅ Масштабируемость — подходит и для малого бизнеса, и для корпораций
✅ Сотрудничество — удобная документация для кросс-функциональных команд
Плюсы n8n:
⚡ Гибкость — легко создавать уникальные сценарии
🚀 Быстрое развертывание — запуск автоматизации за считанные минуты
🔌 Интеграции — более 200 готовых подключений к сервисам
Сравнение:
BPMN — формальная, сложная в освоении, идеальна для крупных компаний и строгих регламентов
n8n — гибкая, простая, подходит для стартапов и быстрых изменений
Идеальные сценарии:
BPMN: крупные организации, сложные процессы, много участников
n8n: стартапы, малый и средний бизнес, быстрые прототипы и интеграции
💡 Вывод: выбирайте инструмент исходя из целей и масштаба компании. BPMN для структурированной работы, n8n для гибкой и быстрой автоматизации.
👉 читайте на Хабре:
https://habr.com/ru/articles/965964/
#bpmn #n8n #моделирование #стандарты
👍6
Знакомая картина? 🎯 Модель это одно, а реальная жизнь — совсем другое 📊 ➡️🌪️
Но это если мы говорим про менеджерские модели. А у разработчика что нарисовано, то и должно исполняться 💻✅
И вот тут возникает вопрос: попытаться увидеть за этим спагетти четкие структуры 🏗️ и реализовать их в BPMN или позволить хаосу а-ля n8n расти и дальше? 🌿
Как вы понимаете, вопрос риторический. Иногда лучше одно, а иногда другое ⚖️
Кстати, есть компромиссный вариант — BPMN можно тоже раскрасить 🎨 — и сразу станет веселее! 😄
Но это если мы говорим про менеджерские модели. А у разработчика что нарисовано, то и должно исполняться 💻✅
И вот тут возникает вопрос: попытаться увидеть за этим спагетти четкие структуры 🏗️ и реализовать их в BPMN или позволить хаосу а-ля n8n расти и дальше? 🌿
Как вы понимаете, вопрос риторический. Иногда лучше одно, а иногда другое ⚖️
Кстати, есть компромиссный вариант — BPMN можно тоже раскрасить 🎨 — и сразу станет веселее! 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что вы думаете по поводу использования цвета на BPMN-диаграммах?
Anonymous Poll
37%
Любой, если он черный
53%
Пусть расцветают все цветы
10%
Надо собрать комиссию, чтобы раз и навсегда определить правильные цвета
CEO Camunda Jacob Freund опубликовал пост о начале партнерства между Camunda и тоже немецкой компанией MEHRWERK с их флагманским продуктом MPMX.
В чем смысл этого партнерства?🤔 — MPMX by MEHRWERK — это решение для процессного майнинга, которое помогает компаниям находить точки приложения сил для автоматизации, а Camunda — это инструмент, который эту автоматизацию непосредственно реализует. Вместе они образуют замкнутый цикл "анализ — действие — контроль".
Идея логичная, хотя и не новая — такие мечты у рынка были всегда. Однако, посмотрим что получится на этот раз.🤓
👉Новость на Хабре
https://habr.com/ru/news/966296/
В чем смысл этого партнерства?
Идея логичная, хотя и не новая — такие мечты у рынка были всегда. Однако, посмотрим что получится на этот раз.
👉Новость на Хабре
https://habr.com/ru/news/966296/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5