본문으로 건너뛰기

[도메인명] 도메인 이벤트 스토밍

본 문서는 제공된 요구사항을 기반으로 Event Storming 방식으로

  1. 도메인 이벤트
  2. 정책(When–Then)
  3. 액터와 명령
  4. Aggregate 매핑
  5. 타임라인/프로세스 흐름 (필요시)
    을 도출한 결과입니다.

1. 도메인 이벤트

과거형으로 작성 (예: ~됨, ~완료됨, ~생성됨)

EventDescription
CallPlanCreated콜 계획이 생성됨
OutboundCallCompleted아웃바운드 콜이 완료됨
......

2. 정책 (When → Then)

이벤트 간 연쇄 반응 및 조건부 후속 처리
후속 액션이 있는 경우만 기록
When 컬럼에 조건이 있는 경우 괄호로 표시
Then 컬럼에 여러 결과는 쉼표로 나열

WhenThen
OutboundCallCompletedCallBannerUpdated 발생
OutboundCallCompleted (금액 100만원 초과)ApprovalRequested 발생
OutboundCallCompleted (3회 이상 시도 실패)EscalationCreated 발생, NotificationSent 발생
CallCompletionRejectedNotificationSent 발생
ApprovalRequestedManagerNotified 발생
......

3. 액터와 명령

Command는 동사 원형으로 작성 (예: CompleteCall, CreateMemo)
Actor는 역할별로 작성 (예: Operator, Manager, Admin)

CommandActorEvent
CreateCallPlanOperatorCallPlanCreated
CompleteOutboundCallOperatorOutboundCallCompleted
.........

4. Aggregate 매핑

이벤트, 정책, 커맨드를 바탕으로 Aggregate 후보 도출
트랜잭션 경계 결정 및 이유 설명

4.1 [Aggregate명 - 예: AppUserOutboundCallPlan]

트랜잭션 경계: 콜의 생명주기 전체를 원자적으로 관리

담당 Command:

  • CreateCallPlan
  • CompleteOutboundCall
  • CancelCall
  • AddMemo

발행 Event:

  • CallPlanCreated
  • OutboundCallCompleted
  • CallCancelled
  • MemoAdded

적용된 정책:

  • OutboundCallCompleted → CallBannerUpdated

4.2 [다음 Aggregate명]

위 구조 반복


5. 타임라인 / 프로세스 흐름 (필요시)

복잡한 워크플로우가 있는 경우에만 작성
Mermaid 다이어그램 사용


(작성 가이드 참고)