hgzero/design/backend/sequence/outer/회의예약및참석자초대.puml
kimjh abb2f8c280 PlantUML 문법 오류 수정 (외부 시퀀스 설계)
- 7개 외부 시퀀스 설계서 PlantUML 문법 오류 수정 완료

**주요 수정 사항**:
1. 비동기 화살표 수정
   - `->>` → `->` (동기 메시지)
   - `-->>` → `-->` (응답 메시지)

2. 캐시 호출 화살표 수정
   - `-.->` → `-->` (응답 화살표)

3. note 블록 수정
   - 단일 라인 `note right:` → 블록 형태로 변경

4. activate/deactivate 최적화
   - 비동기 이벤트 처리에서 불필요한 activate/deactivate 제거

**수정된 파일**:
- Todo완료및회의록반영.puml
- 대시보드조회.puml
- 회의록공유.puml
- 회의록상세조회및수정.puml
- 회의시작및실시간회의록작성.puml
- 회의예약및참석자초대.puml
- 회의종료및최종확정.puml

**검증 결과**:
 모든 화살표가 PlantUML 표준 문법 준수 (`->`, `-->`)
 잘못된 화살표 문법 모두 제거 (`->>`, `-->>`, `-.->`)
 activate/deactivate 쌍 정상 매칭
 PlantUML 렌더링 오류 해결

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 15:09:18 +09:00

74 lines
2.3 KiB
Plaintext

@startuml 회의예약및참석자초대
!theme mono
title 회의 예약 및 참석자 초대 플로우
actor "사용자" as User
participant "Web App" as WebApp
participant "API Gateway" as Gateway
participant "Meeting Service" as Meeting
database "Meeting DB" as MeetingDB
database "Redis Cache" as Redis
participant "Azure Event Hubs" as EventHub
participant "Notification Service" as Notification
participant "Email Service" as Email
== 회의 예약 ==
User -> WebApp: 회의 정보 입력\n(제목, 날짜/시간, 장소, 참석자)
activate WebApp
WebApp -> Gateway: POST /api/meetings\n+ JWT 토큰\n+ 사용자 정보 (userId, userName, email)
activate Gateway
Gateway -> Meeting: 회의 생성 요청
activate Meeting
Meeting -> MeetingDB: 회의 정보 저장\n(제목, 일시, 장소, 참석자, 생성자)
activate MeetingDB
MeetingDB --> Meeting: 회의 ID 반환
deactivate MeetingDB
Meeting -> Redis: 회의 정보 캐싱\nkey: meeting:info:{meetingId}\nTTL: 10분
activate Redis
Redis --> Meeting: 캐싱 완료
deactivate Redis
Meeting -> Redis: 참석자 목록 캐싱\nkey: meeting:participants:{meetingId}\nTTL: 10분
activate Redis
Redis --> Meeting: 캐싱 완료
deactivate Redis
Meeting -> EventHub: MeetingCreated 이벤트 발행\n(meetingId, 제목, 일시, 참석자 목록)
activate EventHub
EventHub --> Meeting: 발행 완료
deactivate EventHub
Meeting --> Gateway: 201 Created\n회의 ID, 회의 정보
deactivate Meeting
Gateway --> WebApp: 회의 생성 응답
deactivate Gateway
WebApp --> User: 회의 예약 완료 표시\n캘린더에 자동 등록
deactivate WebApp
== 참석자 초대 알림 (비동기) ==
EventHub -> Notification: MeetingCreated 이벤트 수신\n(Consumer Group: notification-service-group)
Notification -> Email: 참석자 전원에게 초대 이메일 발송\n(회의 제목, 일시, 장소, 참여 링크)
Email --> Notification: 발송 완료
Notification -> MeetingDB: 알림 발송 기록 저장
MeetingDB --> Notification: 저장 완료
== 회의 시작 30분 전 리마인더 (스케줄링) ==
note over Notification
스케줄링된 작업:
회의 시작 시간 30분 전 자동 실행
end note
Notification -> Email: 참석자 전원에게 리마인더 이메일 발송\n(회의 시작 30분 전)
Email --> Notification: 발송 완료
@enduml