본문으로 건너뛰기

Support 도메인 이벤트 스토밍

본 문서는 Support 도메인 요구사항(requirements.md)을 기반으로 Event Storming 방식으로 분석한 결과입니다.

목적

Support 도메인은 앱 사용자를 대상으로 아웃바운드 콜을 통해 추적 관리하고, 상담 과정에서 발생하는 메모, 이슈 등을 관리하는 도메인 입니다.


1. 도메인 이벤트

Support 도메인에서 발생하는 모든 도메인 이벤트를 정의합니다.

1.1 아웃바운드 콜 관리 관련 이벤트

EventDescription
OutboundCompleted아웃바운드 콜이 완료 처리되었다.
OutboundSkipped아웃바운드 콜이 스킵 처리되었다.
OutboundWithdrawn완료 또는 스킵된 콜이 철회되었다.
OutboundContactScheduleRecorded아웃바운드 콜 예정일이 기록 되었다.
OutboundContactScheduleCanceled아웃바운드 콜 예정일이 기록 취소 되었다.
LastSurveyCompleted42일차 설문이 완료되어 Support 도메인으로 통보되었다. (외부 도메인 이벤트 구독)
LastOutboundAutoCompleted마지막(42일차) 콜이 자동으로 완료 처리되었다.

1.2 앱 사용자 메모/이슈 관련 이벤트

EventDescription
UserSupportMemoCreated앱 사용자에 대한 메모가 생성되었다.
UserSupportMemoMessageUpdated앱 사용자에 대한 메모가 수정되었다. (24시간 내 본인 작성 메모만)
SupportLogHistoryRecorded로그 기록이 변경되었다.
UserSupportIssueCreated앱 사용자 이슈가 생성되었다.
UserSupportIssueMessageUpdated앱 사용자 이슈가 수정되었다. (24시간 내 본인 작성 이슈만)
UserSupportIssueStatusChanged앱 사용자 이슈 상태(활성/해결됨)가 변경되었다.

1.3 앱 사용자 관리 관련 이벤트

EventDescription
UserSiteUpdated앱 사용자의 처방 병원 정보가 수정되었다.

1.4 메시지 관련 이벤트

EventDescription
TemplateMessageSent정해진 템플릿 메시지가 앱 사용자에게 발송되었다.
FreeTextMessageSent임의 텍스트 메시지가 앱 사용자에게 발송되었다.
LastSurveyReminderMessageSent마지막 설문 독촉 메시지가 앱 사용자에게 발송되었다.
MissedCallMessageSent전화를 받지 않은 앱 사용자에게 부재중 메시지가 발송되었다.
MissedCallMessageFailed부재중 메시지 발송이 실패했다.

2. 정책 (When → Then)

이벤트 발생 후 시스템이 수행해야 할 정책을 정의합니다.

2.1 아웃바운드 콜 정책

WhenThen설명
OutboundCompletedRecordSupportLogCommand아웃바운드가 완료되면 로그 이력 기록
OutboundSkippedRecordSupportLogCommand아웃바운드가 스킵되면 로그 이력 기록
OutboundWithdrawnRecordSupportLogCommand아웃바운드가 철회되면 로그 이력 기록
OutboundContactScheduleRecordedRecordSupportLogCommand아웃바운드 연락 일정이 기록되면 로그 이력 기록
OutboundWithdrawnOutboundContactScheduleCanceled아웃바운드가 철회되면 연락 일정 예약 취소
LastSurveyCompleted 수신LastOutboundCompleted42일차 설문 완료 시 마지막 콜 자동 완료 처리

2.2 메모/이슈 정책

WhenThen설명
UserSupportMemoCreatedRecordSupportLogCommand메모가 생성되면 로그 이력 기록
UserSupportMemoMessageUpdatedRecordSupportLogCommand메모가 메시지가 변경되면 로그 이력 기록
UserSupportIssueCreatedRecordSupportLogCommand이슈가 생성되면 로그 이력 기록
UserSupportIssueMessageUpdatedRecordSupportLogCommand이슈 메시지가 변경되면 로그 이력 기록
UserSupportIssueStatusChangedRecordSupportLogCommand이슈 상태가 변경되면 로그 이력 기록
UserSiteUpdatedRecordSupportLogCommand회원 site가 변경되면 로그 이력 기록

2.3 메시지 정책

WhenThen설명
MissedCallMessageSentRecordSupportLogCommand부재중 메시지 발송 시 로그 이력 기록
MissedCallMessageFailedRecordSupportLogCommand부재중 메시지 발송 실패 시 로그 기록

3. 액터와 명령

각 액터가 수행할 수 있는 명령과 결과 이벤트를 정의합니다.

3.1 아웃바운드 콜 관리 명령

CommandActorEvent
CompleteOutboundPlanCommandOperationUserOutboundCompleted
SkipOutboundPlanCommandOperationUserOutboundSkipped
WithdrawOutboundPlanCommandOperationUserOutboundWithdrawn
CompleteLastOutboundSystem (Event Receiver)LastOutboundAutoCompleted

3.2 메모/이슈 관리 명령

CommandActorEvent
CreateSupportMemoCommandOperationUserUserSupportMemoCreated
UpdateSupportMemoMessageCommandOperationUserUserSupportMemoMessageUpdated
CreateSupportIssueCommandOperationUserUserSupportIssueCreated
UpdateSupportIssueMessageCommandOperationUserUserSupportIssueMessageUpdated
ChangeUserSupportIssueStatusOperationUserUserSupportIssueStatusChanged

3.3 메시지 송출 명령

CommandActorEvent
SendTemplateMessageOperationUserTemplateMessageSent
SendFreeTextMessageOperationUserFreeTextMessageSent
SendMissedCallMessageOperationUserMissedCallMessageSent / MissedCallMessageFailed

3.4 사용자 관리 명령

CommandActorEvent
UpdateUserSiteOperationUserUserSiteUpdated

4. Aggregate 매핑

각 명령과 이벤트가 어느 Aggregate에서 처리되는지 정의합니다.

4.1 아웃바운드 콜 관리 Aggregate

CommandAggregate설명
CompleteOutboundUserOutboundCallPlan콜 완료 처리 및 상태 변경
SkipOutboundUserOutboundCallPlan콜 스킵 처리 및 상태 변경
WithdrawOutboundCallResultUserOutboundCallPlan콜 철회 처리 및 상태 복원
SetOutboundCallScheduleUserOutboundCallPlan콜 예정일 설정 및 이력 관리
CompleteLastOutboundUserOutboundCallPlan외부 설문 완료 이벤트 수신 후 마지막 콜 자동 처리

4.2 메모/이슈 관리 Aggregate

CommandAggregate설명
CreateSupportMemoCommandSupportMemo앱 사용자별 메모 생성/조회/수정
UpdateSupportMemoMessageCommandSupportMemo앱 사용자별 메모 생성/조회/수정
CreateSupportIssueCommandSupportIssue앱 사용자별 이슈 생성/조회/수정/상태 관리
UpdateSupportIssueMessageCommandSupportIssue앱 사용자별 이슈 생성/조회/수정/상태 관리
ChangeUserSupportIssueStatusSupportIssue앱 사용자별 이슈 생성/조회/수정/상태 관리

4.3 메시지 송출 Aggregate

CommandAggregate설명
SendTemplateMessageUserSupportMessage템플릿 메시지 및 자유 텍스트 메시지 송출 기록
SendFreeTextMessageUserSupportMessage템플릿 메시지 및 자유 텍스트 메시지 송출 기록
SendMissedCallMessageUserSupportMessage부재중 메시지 송출 요청 및 결과 기록

4.4 사용자 관리 Aggregate

CommandAggregate설명
UpdateUserSiteUserSupport앱 사용자의 처방 병원 정보 관리

변경 이력

버전날짜작성자변경 내용
0.55.02025-12-04mook@weltcorp.com문서 생성