diff --git a/design/backend/logical/logical-architecture.md b/design/backend/logical/logical-architecture.md
index cd47ae1..9e55fa4 100644
--- a/design/backend/logical/logical-architecture.md
+++ b/design/backend/logical/logical-architecture.md
@@ -111,13 +111,8 @@
- TodoProgress 엔티티: 진행 상황 (시작 시간, 완료 시간)
**이벤트 발행**:
-- `MeetingCreated`: 회의 생성 시
-- `MeetingStarted`: 회의 시작 시
- `MeetingEnded`: 회의 종료 시
-- `TranscriptCreated`: 회의록 생성 완료 시
-- `TranscriptShared`: 회의록 공유 시
-- `TodoCreated`: Todo 생성 시
-- `TodoCompleted`: Todo 완료 시
+- `NotificationRequest`: 통지 요청 시 (발송수단, 대상자, 메시지 등 포함)
**실시간 동기화**:
- WebSocket을 통해 수정 델타 전송 (전체 데이터 대신)
@@ -215,14 +210,17 @@
- NotificationTemplate 엔티티: 알림 템플릿
**비동기 처리**:
-- Queue를 통한 알림 발송 요청 수신
+- Event Hub를 통한 통지 요청 수신
- 대량 알림 발송 시 부하 분산
-**알림 유형**:
-- 회의 생성/시작/종료 알림
-- Todo 할당/완료 알림
-- 회의록 생성/공유 알림
-- 리마인더 (회의 30분 전, Todo 마감 3일 전)
+**알림 처리**:
+- Meeting Service가 발행한 `NotificationRequest` 이벤트 구독
+- 이벤트에 포함된 정보:
+ - 발송수단 (이메일, SMS 등)
+ - 대상자 목록
+ - 메시지 내용 및 템플릿
+ - 발송 우선순위
+- 알림 템플릿 기반 메시지 생성 및 발송
---
@@ -245,14 +243,10 @@
| 이벤트 | 발행자 | 구독자 | 목적 |
|--------|--------|--------|------|
-| **MeetingCreated** | Meeting Service | Notification Service
AI Service | 참석자 알림 발송
회의 분석 준비 |
-| **MeetingStarted** | Meeting Service | STT Service | 음성 녹음 시작 준비 |
-| **MeetingEnded** | Meeting Service | STT Service
AI Service
Notification Service | 음성 녹음 종료
AI 분석 종료
종료 알림 |
+| **MeetingEnded** | Meeting Service | STT Service | 음성 녹음 종료 |
| **TranscriptReady** | STT Service | AI Service | AI 회의록 분석 (5초 배치) |
| **TranscriptSummaryCreated** | AI Service | Meeting Service | 회의록 최종 저장 및 동기화 |
-| **TodoCreated** | Meeting Service | Notification Service | 담당자 알림 발송 |
-| **TodoCompleted** | Meeting Service | Notification Service | 완료 알림 |
-| **TranscriptShared** | Meeting Service | Notification Service | 회의록 공유 알림 |
+| **NotificationRequest** | Meeting Service | Notification Service | 통지 발송 (발송수단, 대상자, 메시지 포함) |
**Azure Event Hubs 구성**:
- **Event Hub 네이밍**: `meeting-events`, `transcript-events`, `todo-events`
@@ -325,21 +319,18 @@
↓
회의 생성 (DB 저장)
↓
- MeetingCreated 이벤트 발행
+ NotificationRequest 이벤트 발행
↓
- ┌───────────────────┴───────────────────┐
- ↓ ↓
- [Notification Service] [AI Service]
- 참석자 초대 알림 발송 회의 분석 준비
+ [Notification Service]
+ 참석자 초대 알림 발송
```
**단계별 처리**:
1. 사용자가 회의 정보 입력 (제목, 날짜/시간, 장소, 참석자)
2. Meeting Service: 회의 생성 및 DB 저장
3. Meeting Service: Redis 캐시 저장 (`meeting:info:{meetingId}`)
-4. Meeting Service: `MeetingCreated` 이벤트 발행
+4. Meeting Service: `NotificationRequest` 이벤트 발행 (초대 알림)
5. Notification Service: 참석자 전원에게 초대 이메일 발송
-6. AI Service: 회의 일정 분석 준비
---
@@ -380,11 +371,17 @@
↓
[Meeting Service] → MeetingEnded 이벤트 발행
↓
-┌───┴───┬───────┬────────┐
-↓ ↓ ↓ ↓
-STT AI Notify Meeting
-음성 Todo 종료 Todo
-종료 추출 알림 생성
+[STT Service]
+음성 녹음 종료
+ ↓
+[Meeting Service]
+ ├─ Todo 생성 및 할당 (내부)
+ ├─ 섹션별 검증 완료 (내부)
+ ├─ 회의록 확정
+ └─ NotificationRequest 이벤트 발행
+ ↓
+ [Notification Service]
+ 종료 알림 및 Todo 할당 알림 발송
```
**단계별 처리**:
@@ -393,17 +390,13 @@ STT AI Notify Meeting
3. **STT Service** (구독):
- 음성 녹음 중지
- 최종 STT 변환 완료 확인
-4. **AI Service** (구독):
- - 최종 회의록 분석
- - Todo 자동 추출 및 담당자 식별
- - 추출된 Todo 정보를 Meeting Service에 전송
-5. **Meeting Service**:
- - Todo 생성 및 할당 (내부 처리)
+4. **Meeting Service** (내부 처리):
+ - Todo 생성 및 할당
- 회의록 섹션 링크 연결
- - `TodoCreated` 이벤트 발행
- - 섹션별 검증 완료 처리 (내부 처리)
+ - 섹션별 검증 완료 처리
- 회의록 확정 (확정 버전 생성)
-6. **Notification Service** (구독):
+ - `NotificationRequest` 이벤트 발행 (종료 알림, Todo 할당 알림)
+5. **Notification Service** (구독):
- 회의 종료 알림 발송
- Todo 할당 알림 발송
@@ -414,10 +407,13 @@ STT AI Notify Meeting
```
[Todo 완료 처리]
↓
-[Meeting Service] → TodoCompleted 이벤트 발행
- ↓
-Notification
-완료 알림
+[Meeting Service]
+ ├─ Todo 상태 업데이트 (내부)
+ ├─ 회의록 반영 (내부)
+ └─ NotificationRequest 이벤트 발행
+ ↓
+ [Notification Service]
+ 완료 알림 발송
```
**단계별 처리**:
@@ -425,7 +421,7 @@ Notification
2. Meeting Service: Todo 상태 업데이트 (완료 시간, 완료자 기록)
3. Meeting Service: 관련 회의록에 완료 상태 자동 반영 (내부 처리)
4. Meeting Service: Redis 캐시 무효화 (`meeting:info:{meetingId}`)
-5. Meeting Service: `TodoCompleted` 이벤트 발행
+5. Meeting Service: `NotificationRequest` 이벤트 발행 (완료 알림)
6. **Notification Service** (구독):
- 회의록 작성자에게 완료 알림 발송
- 모든 Todo 완료 시 전체 완료 알림 발송
@@ -441,11 +437,13 @@ Notification
```
[회의록 확정] → [공유 버튼 클릭]
↓
-[Meeting Service] → 공유 링크 생성
- ↓
-[Notification Service] → 참석자 알림 발송
- ↓
-[Meeting Service] → 다음 회의 일정 자동 등록 (언급된 경우)
+[Meeting Service]
+ ├─ 공유 링크 생성
+ ├─ 다음 회의 일정 등록 (내부)
+ └─ NotificationRequest 이벤트 발행
+ ↓
+ [Notification Service]
+ 공유 알림 발송
```
**단계별 처리**:
@@ -453,8 +451,9 @@ Notification
2. Meeting Service: 공유 링크 생성 (고유 URL)
3. Meeting Service: 공유 정보 DB 저장 (공유 시간, 대상, 권한)
4. Meeting Service: Redis 캐시 무효화
-5. Notification Service: 참석자 전원에게 이메일 알림 발송
-6. Meeting Service: 다음 회의 일정이 언급된 경우 캘린더 자동 등록
+5. Meeting Service: 다음 회의 일정이 언급된 경우 캘린더 자동 등록 (내부 처리)
+6. Meeting Service: `NotificationRequest` 이벤트 발행 (공유 알림)
+7. Notification Service: 참석자 전원에게 이메일 알림 발송
---
diff --git a/design/backend/logical/logical-architecture.mmd b/design/backend/logical/logical-architecture.mmd
index 16a337f..cdfd16a 100644
--- a/design/backend/logical/logical-architecture.mmd
+++ b/design/backend/logical/logical-architecture.mmd
@@ -88,7 +88,7 @@ graph TB
%% ========================================
%% 이벤트 구독 정보 (노트)
%% ========================================
- Note1["📋 이벤트 구독 매핑
Meeting Service:
- TranscriptSummaryCreated
STT Service:
- MeetingEnded
AI Service:
- MeetingCreated
- MeetingEnded
- TranscriptReady
Notification Service:
- MeetingCreated
- MeetingEnded
- TranscriptCreated
- TodoCreated
- TodoCompleted"]
+ Note1["📋 이벤트 구독 매핑
Meeting Service:
- TranscriptSummaryCreated
STT Service:
- MeetingEnded
AI Service:
- TranscriptReady
Notification Service:
- NotificationRequest"]
Note1 -.->|"참조"| EventHubs