mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 12:36:23 +00:00
119 lines
3.8 KiB
Plaintext
119 lines
3.8 KiB
Plaintext
@startuml
|
|
!theme mono
|
|
|
|
title 06. Todo 관리 및 추적 - 이벤트스토밍 플로우
|
|
|
|
actor "Todo 담당자" as Assignee
|
|
actor "회의 주최자" as Organizer
|
|
participant "Todo 시스템" as System
|
|
participant "알림 시스템" as Notification
|
|
participant "캘린더 시스템" as Calendar
|
|
participant "회의록 시스템" as MeetingNote
|
|
|
|
== Todo 할당 ==
|
|
|
|
System -> System : **커맨드**: Todo 할당하기\n(데이터: Todo ID, 담당자, 마감일, 우선순위)
|
|
activate System
|
|
System -> System : Todo 등록
|
|
System --> System : **이벤트**: Todo가 할당됨\n(데이터: Todo ID, 담당자, 마감일, 할당 시간)
|
|
deactivate System
|
|
|
|
note right of System
|
|
**Policy/Rule**:
|
|
Todo 할당 시 →
|
|
담당자에게 즉시 알림 발송
|
|
end note
|
|
|
|
System -> Notification : **커맨드**: 담당자에게 알림 보내기\n(데이터: Todo 정보, 알림 채널)
|
|
activate Notification
|
|
Notification -> Assignee : 이메일/슬랙 알림
|
|
Notification --> System : **이벤트**: 담당자에게 알림이 발송됨\n(데이터: 알림 ID, 발송 시간, 발송 채널)
|
|
deactivate Notification
|
|
|
|
System -> Calendar : 마감일 캘린더 등록
|
|
Calendar --> System : 캘린더 등록 완료
|
|
|
|
== Todo 진행 상황 업데이트 ==
|
|
|
|
Assignee -> System : **커맨드**: Todo 진행 상황 업데이트하기\n(데이터: Todo ID, 진행률, 상태)
|
|
activate System
|
|
System -> System : 진행 상황 저장
|
|
System --> Assignee : **이벤트**: Todo 진행 상황이 업데이트됨\n(데이터: 업데이트 시간, 진행률, 상태: 시작 전/진행 중/완료)
|
|
deactivate System
|
|
|
|
System -> Notification : 주최자에게 진행 상황 알림
|
|
Notification -> Organizer : 진행 상황 공유
|
|
|
|
== 마감일 리마인더 ==
|
|
|
|
note right of System
|
|
**Policy/Rule**:
|
|
마감일 3일 전 →
|
|
자동 리마인더 발송
|
|
end note
|
|
|
|
System -> System : 마감일 모니터링
|
|
System --> System : **이벤트**: 마감일이 임박함\n(데이터: Todo ID, 남은 시간)
|
|
|
|
System -> Notification : **커맨드**: 리마인더 발송하기\n(데이터: Todo ID, 리마인더 시간)
|
|
activate Notification
|
|
Notification -> Assignee : 마감일 3일 전 알림
|
|
Notification --> System : **이벤트**: 리마인더가 발송됨\n(데이터: 리마인더 ID, 발송 시간)
|
|
deactivate Notification
|
|
|
|
== 마감일 당일 미완료 ==
|
|
|
|
alt 마감일 당일 미완료
|
|
note right of System
|
|
**Policy/Rule**:
|
|
마감일 당일 미완료 시 →
|
|
긴급 알림 발송
|
|
end note
|
|
|
|
System -> Notification : 긴급 알림
|
|
Notification -> Assignee : 마감일 경고
|
|
Notification -> Organizer : 지연 알림
|
|
end
|
|
|
|
== Todo 완료 ==
|
|
|
|
Assignee -> System : **커맨드**: Todo 완료 처리하기\n(데이터: Todo ID, 완료 시간, 완료자)
|
|
activate System
|
|
System -> System : 완료 상태 업데이트
|
|
System --> Assignee : **이벤트**: Todo가 완료됨\n(데이터: 완료 시간, 완료자)
|
|
deactivate System
|
|
|
|
note right of System
|
|
**Policy/Rule**:
|
|
Todo 완료 시 →
|
|
회의록에 완료 상태 자동 반영
|
|
end note
|
|
|
|
System -> MeetingNote : 회의록 업데이트
|
|
MeetingNote --> System : **이벤트**: 회의록에 완료 상태가 반영됨\n(데이터: 반영 시간, 회의록 버전)
|
|
|
|
System -> Notification : 완료 알림 발송
|
|
Notification -> Organizer : Todo 완료 알림
|
|
|
|
== 모든 Todo 완료 ==
|
|
|
|
alt 모든 Todo 완료
|
|
note right of System
|
|
**Policy/Rule**:
|
|
모든 Todo 완료 시 →
|
|
회의 주최자에게 완료 알림
|
|
end note
|
|
|
|
System -> Notification : 전체 완료 알림
|
|
Notification -> Organizer : 회의 액션 아이템 완료
|
|
end
|
|
|
|
note over Assignee, MeetingNote
|
|
**Actor**: Todo 담당자, 회의 주최자, AI 시스템
|
|
**External System**: 알림 시스템, 캘린더 시스템, 회의록 시스템
|
|
**커맨드 데이터**: Todo 정보, 담당자, 마감일, 진행 상황
|
|
**이벤트 데이터**: Todo 상태, 완료 여부, 리마인더 발송
|
|
end note
|
|
|
|
@enduml
|