group-telegram.com/analitics_way/83
Last Update:
Транзакции в BPMN,
или при чем здесь Том Круз?
А знаете ли вы, что такое транзакционные подпроцессы в нотации BPMN?
Это, наверное, самый частый мой вопрос на собеседованиях аналитиков, где я выступаю интервьюером (ну после вопроса про регистры 1С, разумеется 😂).
Дело в том, что транзакционность - основополагающее свойство не только информационных систем и баз данных, но и процессов. Да, транзакции очень редко упоминают и используют на практике. И я тоже не прошу использовать их повсеместно, но понимать - обязательно.
Любите кино?
Смотрели "Грань будущего" с Томом Крузом? Я пересматривал раз 20, а еще и ранобэ "All you need is kill" читал и перечитывал.
Так вот, этот фильм - отличная метафора на транзакционный подпроцесс.
События фильма, если кто-то не смотрел (да как такое можно не смотреть😫 )
Кейдж - бывший пиарщик, которого сослали на фронт крошить инопланетян.
Во время штурма на инопланетяшек, по счастливому стечению обстоятельств, парень попал во временную петлю (глотнул кровушки инопланетной перед смертью и случилась магия).
Теперь, в случае смерти, главный герой перемещается во времени к моменту своего пробуждения в лагере перед штурмом.
Чтобы прервать цикл перерождений (и, мимоходом, спасти мир), он должен грохнуть Босса - "Альфу".
В какой-то момент случается так, что Кейдж теряет много крови и, подспудно, теряет возможность перерождаться. Но Босса он не завалил, а значит мир не спас - цель не достигнута.
Ну и теперь он. уже без возможности вернуться к сохранке, идет шмалять из дробаша по инопланетному Боссу👾
А в финале...Спойлеров не будет, смотрите фильм 🔫
А теперь пошли по теории BPMN и проведем аналогии с сюжетом.
▫️ Транзакция - всегда подпроцесс (набор неких операций) внутри другого - головного процесса.
В фильме:
Жизнь Кейджа - это большой головной процесс.
События фильма - это подпроцесс-транзакция.
Транзакция имеет три варианта завершения:
1️⃣ Успешное завершение - когда все процессы внутри транзакции выполнены на 100% - без сучка, без задоринки. Результаты таких операций фиксируются и управление переходит к родительскому процессу.
В фильме:
Такого не было, но если бы Кейдж грохнул "Альфу" внутри транзакции - то это считалось бы успешным завершением транзакции, прожитый день бы сохранился и главгер жил бы дальше в своем родительском процессе.
2️⃣ Отмена - когда все выполненные внутри транзакции действия обнуляются (компенсируются) и управление переходит к родительскому процессу через отдельное прерывающее событие.
В фильме:
Смерть Кейджа внутри его дня сурка - это, по сути, и есть отмена транзакции. Всё, что он пережил - отменяется (как совершенные операции) и остается только в его памяти - прям как в протоколе исполнения процесса в camunda.
3️⃣ Ошибка - когда не происходит отмена (компенсации) всех ранее выполненных операций процесса (что успели - то и выполнили, с соответствующими результатами) и управление также переходит в родителя через прерывающее событие.
В фильме:
Тот момент, когда Кейдж потерял много крови и, вместе с ней, возможность "откатываться" к началу дня - это и есть ошибка транзакции: все события дня сохранились и он начал проживать свою жизнь уже вне рамок транзакционного подпроцесса.
———
Вот и все особенности транзакции в BPMN, которые необходимо понимать и уметь объяснить "на пальцах" своим пользователям:
На этом всё.
Смотрите хорошее кино - даже если сегодня понедельник
———
P.S. Пост написал из любви к фильму "Грань будущего".
И вместе с тем, поскольку мне внезапно написали @systems_education - поучаствую-ка я в конкурсе "Продолжи мысль" от них в номинации "Ясное объяснение" и оставлю здесь хэштег #продолжи_мысль_SE
Вот теперь - всех благ
#аналитику #проБА