*вольный перевод статьи (некоторые части не переводились, некоторые были взяты из других источников, если в них данный шаг был описан подробнее)
EventStorming — это эффективный метод декомпозиции монолитного приложения и выработки четкого и последовательного подхода к созданию новой событийно-ориентированной микросервисной версии. Данный метод был предложен Альберто Брандолини в 2013 году, когда он опубликовал первую статью о EventStorming. Этот подход основан на проведении воркшопов, направленных на генерацию обсуждений и повышение прозрачности сложных бизнес-процессов. EventStorming позволяет разобрать бизнес-процесс, выявляя ключевые события, процессы, участников, политики и системы, задействованные в нем.
С момента появления EventStorming были разработаны различные его вариации. Например, IBM представила расширенную версию и ввела термин Insights Storming, добавив к стандартному процессу этап анализа потенциальных будущих событий. В свою очередь, VMWare Tanzu предложила упрощенную версию, исключив из процесса такие элементы, как политики и артефакты. Основная идея здесь заключается в том, что EventStorming не имеет строго фиксированного формата. Его основная цель — упрощение обмена знаниями, а компании могут адаптировать этот метод в зависимости от своих бизнес-задач и структуры команд. В данной статье мы рассмотрим базовый подход к EventStorming, который подходит большинству команд.
Прежде чем углубляться в детали, разберем основные компоненты и терминологию, часто используемую в EventStorming. Каждый компонент в этом процессе представлен цветными стикерами, где каждому цвету соответствует определенный тип элемента. В следующих разделах будет приведена легенда с описанием цветовых сочетаний, использованных в статье.
События домена (оранжевый)
Действие, которое уже произошло, обычно выраженное глаголом в прошедшем времени. Например:
Команды (синий)
Определяет триггер для каждого события. Например:
Акторы (желтый)
Пользователи, которые отправляют команды или получают уведомления от процесса. Следует уточнять конкретные роли, например:
Системы (розовый)
Внутренние и сторонние системы, взаимодействующие с вашим приложением. Эти системы могут отправлять команды или получать уведомления от процесса. Например:
Политики (фиолетовый)
Набор правил, определяющих последующие шаги после события. Например:
Артефакты (зеленый)
Значимые выходные данные, сгенерированные в результате событий.
*в некоторых других статьях о EventStorming зелёные стикеры используются для представлений (View), это помогает визуализировать, как пользователи взаимодействуют с системой, что особенно полезно на этапе проектирования пользовательского опыта - примечание от переводчика)
Временная шкала
Последовательный поток событий в рамках бизнес-процесса.