mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 05:59:11 +00:00
내외부 시퀀스 - 불필요 이벤트 제거
This commit is contained in:
@@ -127,13 +127,17 @@ else 공유 가능
|
||||
note over Service
|
||||
비동기 이벤트 발행:
|
||||
- 공유 대상자에게 이메일 발송
|
||||
- 공유 알림 발송
|
||||
- 캘린더 초대 발송 (일정 있는 경우)
|
||||
end note
|
||||
|
||||
' 이벤트 발행
|
||||
Service -> EventHub: publish(MinutesShared)\n{\n minutesId, shareLink,\n sharedWith, permission,\n sharedBy, nextMeetingEvent\n}
|
||||
' NotificationRequest 이벤트 발행
|
||||
Service -> EventHub: publish(NotificationRequest)\n{\n channel: EMAIL,\n recipients: sharedWith,\n message: "회의록 공유 안내",\n metadata: {\n minutesId, shareLink,\n permission, sharedBy,\n nextMeetingEvent\n }\n}
|
||||
activate EventHub
|
||||
note right
|
||||
Notification Service가 구독:
|
||||
- Consumer Group: notification-service-group
|
||||
- 공유 대상자에게 이메일 발송
|
||||
end note
|
||||
EventHub --> Service: 발행 완료
|
||||
deactivate EventHub
|
||||
|
||||
|
||||
@@ -131,24 +131,21 @@ else 확정 가능
|
||||
|
||||
note over Service
|
||||
비동기 처리:
|
||||
- AI가 Todo 항목 자동 추출
|
||||
- 회의록 공유 가능 상태로 전환
|
||||
- 참석자에게 확정 알림
|
||||
end note
|
||||
|
||||
' AI Todo 추출 이벤트 발행
|
||||
Service -> EventHub: publish(MinutesFinalized)\n{\n minutesId, meetingId,\n finalizedAt, content,\n participants\n}
|
||||
' NotificationRequest 이벤트 발행
|
||||
Service -> EventHub: publish(NotificationRequest)\n{\n channel: EMAIL,\n recipients: participants,\n message: "회의록 확정 안내",\n metadata: {\n minutesId, meetingId,\n finalizedAt, version\n }\n}
|
||||
activate EventHub
|
||||
note right
|
||||
Notification Service가 구독:
|
||||
- Consumer Group: notification-service-group
|
||||
- 참석자 전원에게 확정 알림 발송
|
||||
end note
|
||||
EventHub --> Service: 발행 완료
|
||||
deactivate EventHub
|
||||
|
||||
' Todo 자동 추출 (비동기 응답 대기 없음)
|
||||
note over Service
|
||||
AI 서비스가 MinutesFinalized 이벤트를 구독하여
|
||||
Todo 자동 추출 및 할당 수행
|
||||
추출된 Todo는 별도 이벤트로 전달됨
|
||||
end note
|
||||
|
||||
Service --> Controller: MinutesFinalizeResponse
|
||||
deactivate Service
|
||||
|
||||
|
||||
@@ -100,14 +100,19 @@ else 중복 없음
|
||||
|
||||
note over Service
|
||||
비동기 이벤트 발행:
|
||||
- 초대 이메일 발송
|
||||
- 참석자에게 초대 알림 발송
|
||||
- 캘린더 등록
|
||||
- 리마인더 스케줄링
|
||||
end note
|
||||
|
||||
' 이벤트 발행
|
||||
Service -> EventHub: publish(MeetingCreated)\n{\n meetingId, title, startTime,\n participants, creatorInfo\n}
|
||||
Service -> EventHub: publish(NotificationRequest)\n{\n channel: EMAIL,\n recipients: participants,\n message: "회의 초대",\n metadata: {\n meetingId, title, startTime,\n location\n }\n}
|
||||
activate EventHub
|
||||
note right
|
||||
Notification Service가 구독:
|
||||
- Consumer Group: notification-service-group
|
||||
- 참석자 전원에게 초대 이메일 발송
|
||||
end note
|
||||
EventHub --> Service: 발행 완료
|
||||
deactivate EventHub
|
||||
|
||||
|
||||
@@ -267,13 +267,28 @@ else 종료 가능
|
||||
note over Service
|
||||
비동기 이벤트 발행:
|
||||
- STT 서비스에 녹음 중지 요청
|
||||
- AI 서비스에 최종 회의록 생성 요청
|
||||
- 참석자에게 회의 종료 알림
|
||||
end note
|
||||
|
||||
' 이벤트 발행
|
||||
Service -> EventHub: publish(MeetingEnded)\n{\n meetingId, sessionId,\n endedAt, statistics,\n minutesId,\n aiSuggestionsMerged: true,\n mergedCount: N\n}
|
||||
' MeetingEnded 이벤트 발행 (STT Service 구독)
|
||||
Service -> EventHub: publish(MeetingEnded)\n{\n meetingId, sessionId,\n endedAt, statistics\n}
|
||||
activate EventHub
|
||||
note right
|
||||
STT Service가 구독:
|
||||
- Consumer Group: stt-service-group
|
||||
- 음성 녹음 중지 처리
|
||||
end note
|
||||
EventHub --> Service: 발행 완료
|
||||
deactivate EventHub
|
||||
|
||||
' NotificationRequest 이벤트 발행 (Notification Service 구독)
|
||||
Service -> EventHub: publish(NotificationRequest)\n{\n channel: EMAIL,\n recipients: participants,\n message: "회의 종료 안내",\n metadata: {\n meetingId, statistics,\n minutesId,\n aiEnhancement: {\n merged: true,\n count: N\n }\n }\n}
|
||||
activate EventHub
|
||||
note right
|
||||
Notification Service가 구독:
|
||||
- Consumer Group: notification-service-group
|
||||
- 참석자 전원에게 종료 알림 발송
|
||||
end note
|
||||
EventHub --> Service: 발행 완료
|
||||
deactivate EventHub
|
||||
|
||||
|
||||
@@ -12,14 +12,17 @@ participant "Email Service<<E>>" as Email
|
||||
participant "NotificationRepository" as Repository
|
||||
database "PostgreSQL<<E>>" as DB
|
||||
|
||||
EventHub -> Listener: consume(NotificationEvent)
|
||||
EventHub -> Listener: consume(NotificationRequest)
|
||||
activate Listener
|
||||
note right
|
||||
Event 종류:
|
||||
- MeetingCreatedEvent
|
||||
- TodoAssignedEvent
|
||||
- MeetingReminderEvent
|
||||
- SummaryCompletedEvent
|
||||
NotificationRequest 이벤트:
|
||||
- channel: 발송수단 (EMAIL, SMS)
|
||||
- recipients: 대상자 목록
|
||||
- message: 메시지 내용
|
||||
- metadata: 추가 정보 (회의정보 등)
|
||||
|
||||
Consumer Group:
|
||||
- notification-service-group
|
||||
end note
|
||||
|
||||
Listener -> Service: processNotification(event)
|
||||
|
||||
Reference in New Issue
Block a user