💭

이벤트 스토밍

아래 문서 및 영상을 참고하여 자신의 프로젝트를 대상으로 이벤트스토밍 해보세요. 협업 프로젝트라면 동료와 함께 진행하시면 더 좋습니다.
어떻게 시작해야 할지 모르겠다면, 주요한 API End point 부터 디버깅해가며 진행하셔도 좋습니다.
모든 도메인에 대해 진행하기 어렵다면, 적어도 하나의 Aggregate는 완성해봐요

참고 영상

1단계 혼란스러운 탐험

알고 있는 도메인 이벤트를 작성합니다.
다른 사람과 토론을 시작하지 말고 자신이 옳다고 생각하는 방식으로 기록합니다.

Domain Event - 주황색

과거에 일어났던 일을 표현하기 때문에 과거 시제를 사용합니다.
ex) 강의가 생성되었다. 수강신청 성공 메일이 발송되었다.
이벤트가 발생한다는 것은 상태가 변경되었다는 것을 의미합니다.

2단계 타임라인 적용

모든 도메인 이벤트를 타임라인으로 정렬하고 실제로 중복되는 이벤트를 제거합니다.
시간은 왼쪽에서 오른쪽으로 흐르고, 위에서 아래로 평행한 시간을 표현할 수 있습니다.

Hot Spot - 자주색

2단계에서 발생한 갈등을 시각화하고 캡처하는데 사용합니다.
당장 토론하지 않고 나중에 문제가 해결되면 제거합니다.

Actor - 노란색

단순한 사용자 또는 고객보다는 페르소나를 설정합니다.

System - 분홍색

외부 시스템부터 일부 레거시 및 마이크로서비스에 이르기까지 책임을 전가할 수 있는 모든 것을 의미합니다.

Command or Action - 파란색

시스템에서 일어나는 일
도메인 이벤트가 발생하는 원인

Read Model or Info - 초록색

액터가 커맨드하는데 도움이 되는 정보 (결정을 내리는데 필요한 정보)를 의미합니다.

Policy - 연보라색

주로 ‘~ 할 때마다’ 라는 단어로 시작합니다.
도메인 이벤트와 커맨드 사이에 위치합니다,
단순한 조건부터 복잡한 정책까지 모두 될 수 있어요.

3단계 바운디드 컨텍스트를 확인

경계를 나눕니다.

Aggregate or Business Rules - 연노란색

시스템이 기대하는 책임을 수행하며 일관성을 유지하는 단위를 의미합니다.
일관성은 항상 참이어야 하는 속성(불변식)을 유지함으로써 달성됩니다.

색상 규칙

일관된 색상규칙을 고수합니다.
파란색 → 주황색 사이에는 분홍색이 있어야 합니다.
시스템이 외부 시스템에 의존할 경우 그 이후에 도메인 이벤트가 발생하여야 합니다.
주황색 → 파란색 사이에는 연보라색이 있어야 합니다.
도메인 이벤트로 인해 시스템에서 연쇄적으로 액션이 일어난다면 그에 대한 정책이 필요할 수 있어요.

적용된 모습