mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 09:06:24 +00:00
- 외부 시퀀스 설계 가이드 다운로드 (claude/sequence-outer-design.md) - 외부 시퀀스 설계 디렉토리 생성 (design/backend/sequence/) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
74 lines
2.3 KiB
Plaintext
74 lines
2.3 KiB
Plaintext
@startuml 회의시작및템플릿선택
|
|
!theme mono
|
|
|
|
title 회의 시작 및 템플릿 선택 (Flow 3)
|
|
|
|
actor "사용자" as User
|
|
participant "Web App" as Web
|
|
participant "API Gateway" as Gateway
|
|
participant "Meeting Service" as Meeting
|
|
participant "STT Service" as STT
|
|
participant "RabbitMQ" as MQ
|
|
participant "Redis" as Cache
|
|
database "PostgreSQL" as DB
|
|
|
|
== 템플릿 선택 ==
|
|
User -> Web: 회의 템플릿 선택\n(일반/스크럼/킥오프/주간)
|
|
Web -> Gateway: GET /api/meetings/templates
|
|
Gateway -> Meeting: 템플릿 목록 조회
|
|
Meeting -> Cache: 템플릿 캐시 확인
|
|
alt 캐시 존재
|
|
Cache --> Meeting: 템플릿 목록 반환
|
|
else 캐시 미존재
|
|
Meeting -> DB: SELECT * FROM templates
|
|
DB --> Meeting: 템플릿 데이터
|
|
Meeting -> Cache: 템플릿 캐시 저장
|
|
end
|
|
Meeting --> Gateway: 템플릿 목록 응답
|
|
Gateway --> Web: 200 OK + 템플릿 목록
|
|
Web --> User: 템플릿 선택 UI 표시
|
|
|
|
== 회의 시작 ==
|
|
User -> Web: 회의 시작 버튼 클릭
|
|
Web -> Gateway: POST /api/meetings/{meetingId}/start\n+ templateId
|
|
Gateway -> Meeting: 회의 시작 요청
|
|
|
|
Meeting -> DB: BEGIN TRANSACTION
|
|
Meeting -> DB: UPDATE meetings\nSET status='ongoing',\nstarted_at=NOW()
|
|
DB --> Meeting: 업데이트 완료
|
|
|
|
Meeting -> DB: INSERT INTO meeting_sessions\n(meeting_id, template_id,\nsession_status='active')
|
|
DB --> Meeting: 세션 생성 완료
|
|
|
|
Meeting -> DB: INSERT INTO meeting_transcripts\n(session_id, template_id,\ncontent='{}')
|
|
DB --> Meeting: 회의록 초기화 완료
|
|
|
|
Meeting -> DB: COMMIT
|
|
Meeting -> Cache: 회의 상태 캐시 업데이트\n(status='ongoing')
|
|
|
|
== 이벤트 발행 ==
|
|
Meeting ->> MQ: Publish "MeetingStarted" Event\n{\n meetingId,\n sessionId,\n templateId,\n startedAt,\n participants\n}
|
|
note right
|
|
비동기 이벤트 발행
|
|
- Exchange: meeting.events
|
|
- Routing Key: meeting.started
|
|
end note
|
|
|
|
Meeting --> Gateway: 200 OK + sessionId
|
|
Gateway --> Web: 회의 시작 성공 응답
|
|
Web --> User: 회의 진행 화면 전환
|
|
|
|
== STT 서비스 시작 ==
|
|
MQ -->> STT: Consume "MeetingStarted" Event
|
|
STT -> STT: 오디오 녹음 세션 초기화
|
|
STT -> Cache: 녹음 세션 상태 저장\n(sessionId, status='recording')
|
|
STT -> STT: 마이크 활성화 및\n오디오 스트림 시작
|
|
|
|
note over STT
|
|
STT 서비스 준비 완료
|
|
- 5초 단위 음성 인식 시작
|
|
- 실시간 텍스트 변환 대기
|
|
end note
|
|
|
|
@enduml
|