К основному содержимому
#Architecture

EventStorming (Рубрика Architecture)

#Architecture #DDD #Processes #EventStorming

Сегодня провел день в роли фасиллитатора сессии event storming, которая была посвящена домену a/b экспериментов. Это было занимательно и утомительно:) Этот подход придумал Alberto Brandolini для того, чтобы пошарить знания между экспертами доменной области и разработчиками максимально эффективно.

Сама техника представляет из себя воркшоп из следущего набора шагов (часто глубина проработки может быть не такой детальной)

  • Unstructured exploration — на этом шаге в режиме брейншторма все участники группы самостоятельно накидывают на доску domain events
  • Timelines — сгенерированные на предыдущем шаге domain events выстраиваются в хронологическом порядке, начиная с happy path
  • Commands — на этом шаге добавляются commands, которые описывают что именно триггерит событие или поток событий. У части команд есть actor, который и запускает выполнение команды
  • Policies — на этом шаге идет разбор команд, которые не имеют actor. У таких команд есть policy, когда запускается такая команда, обычно она завязана на наступление какого-то другого domain event
  • External systems — на этом шаге модель расширяется внешними системами, которые не являются частью домена, что разбирается, но которые участвуют в процессе, например, исполняют command или получают нотификации о domain events
  • Aggregates — когда все команды и события на месте, участники могут начать задумываться об оптимизации и выделении aggregates, которые получают команды и генерируют события
  • Bounded contexts — на последнем шаге время посмотреть на всю картину. Группы тесно связанных aggregates являются естественными кандидатами на определение границ для bounded contexts

На приложенных фотографиях

  1. Кусочек получившейся сегодня схемы - ребята отлично поработали, собрали timeline сложного процесса, выделили actors и проработали разделение на bounded contexts
  2. Примерная поэтапная схема проведения воркшопа

P.S. У автора подхода есть книга, которая уже много лет написана на 70%. Я ее даже как-то читал:) Есть куча выступлений с описанием подхода:

#DDD #Architecture #Processes #EventStorming