EventStorming (Рубрика #Architecture) Сегодня провел день в роли фасиллитатора сессии 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%. Я ее даже как-то читал:) Есть куча выступлений с описанием подхода: - с конференции GOTO в 2018 - с конференции DDD Europe в 2019 - с конференции USI Events в 2021 #DDD #Architecture #Processes #EventStorming