아래 문서 및 영상을 참고하여 자신의 프로젝트를 대상으로 이벤트스토밍 해보세요. 협업 프로젝트라면 동료와 함께 진행하시면 더 좋습니다.
•
어떻게 시작해야 할지 모르겠다면, 주요한 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 - 연노란색
•
시스템이 기대하는 책임을 수행하며 일관성을 유지하는 단위를 의미합니다.
•
일관성은 항상 참이어야 하는 속성(불변식)을 유지함으로써 달성됩니다.
색상 규칙
일관된 색상규칙을 고수합니다.
•
파란색 → 주황색 사이에는 분홍색이 있어야 합니다.
◦
시스템이 외부 시스템에 의존할 경우 그 이후에 도메인 이벤트가 발생하여야 합니다.
•
주황색 → 파란색 사이에는 연보라색이 있어야 합니다.
◦
도메인 이벤트로 인해 시스템에서 연쇄적으로 액션이 일어난다면 그에 대한 정책이 필요할 수 있어요.