redis outer수정

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Hyowon Yang 2025-10-23 13:28:16 +09:00
parent 860b8cc08f
commit 9e9c129c3c

View File

@ -12,6 +12,7 @@ participant "Content Service" as Content
participant "Distribution Service" as Dist participant "Distribution Service" as Dist
participant "Kafka" as Kafka participant "Kafka" as Kafka
database "Event DB" as EventDB database "Event DB" as EventDB
database "Redis" as Redis
participant "외부 AI API" as AIApi participant "외부 AI API" as AIApi
participant "이미지 생성 API" as ImageApi participant "이미지 생성 API" as ImageApi
participant "배포 채널 APIs" as ChannelApis participant "배포 채널 APIs" as ChannelApis
@ -42,16 +43,17 @@ AI -> EventDB: 과거 이벤트 데이터 조회\n(업종, 지역 기반 통계
EventDB --> AI: 이벤트 통계 데이터 EventDB --> AI: 이벤트 통계 데이터
AI -> AIApi: 트렌드 분석 및 이벤트 추천 요청\n{목적, 업종, 지역, 과거데이터, 매장정보} AI -> AIApi: 트렌드 분석 및 이벤트 추천 요청\n{목적, 업종, 지역, 과거데이터, 매장정보}
AIApi --> AI: 3가지 추천안 + 트렌드 요약\n(예: "여름철 시원한 음료 선호도 증가") AIApi --> AI: 3가지 추천안 + 트렌드 요약\n(예: "여름철 시원한 음료 선호도 증가")
AI -> EventDB: 추천 결과 저장\n(3가지 추천안, 트렌드 요약 저장) AI -> Redis: 추천 결과 캐싱\n(3가지 추천안, 트렌드 요약 저장)\nTTL: 24시간
EventDB --> AI: 저장 완료 Redis --> AI: 저장 완료
AI -> EventDB: Job 상태 업데이트\n(상태를 COMPLETED로 변경) AI -> Redis: Job 상태 업데이트\n(상태를 COMPLETED로 변경)
note over AI, Redis: AI 추천 정보는 Redis에만 저장\n최종 선택 시 Event DB에 저장
group Polling으로 상태 확인 group Polling으로 상태 확인
loop 상태 확인 (최대 30초) loop 상태 확인 (최대 30초)
FE -> Gateway: GET /jobs/{jobId}/status FE -> Gateway: GET /jobs/{jobId}/status
Gateway -> Event: Job 상태 조회 Gateway -> Event: Job 상태 조회
Event -> EventDB: Job 상태 조회\n(jobId로 상태 및 결과 조회) Event -> Redis: Job 상태 조회\n(jobId로 상태 및 결과 조회)
EventDB --> Event: {status, result} Redis --> Event: {status, result}
alt Job 완료 alt Job 완료
Event --> Gateway: 200 OK\n{status: COMPLETED, recommendations, trendSummary} Event --> Gateway: 200 OK\n{status: COMPLETED, recommendations, trendSummary}
@ -99,22 +101,14 @@ else 트렌디 스타일
ImageApi --> Content: 트렌디 이미지 URL ImageApi --> Content: 트렌디 이미지 URL
end end
note over Content: Redis 캐시에 이미지 URL 저장\nJob 상태를 COMPLETED로 업데이트 note over Content: Redis 캐시에 이미지 URL 저장\nJob 상태를 COMPLETED로 업데이트\n\n이미지 URL은 Redis에만 저장됨\n최종 콘텐츠 선택 시 Event DB에 저장
Content -> Kafka: Publish to event-topic\nContentCreated\n{jobId, eventDraftId, imageUrls}
note over Event: Kafka Consumer 구독\ninner sequence 참조:\nevent-콘텐츠생성완료구독.puml
Kafka --> Event: ContentCreated 이벤트 수신
Event -> EventDB: 이미지 URL 저장\n(이벤트 초안 업데이트)
EventDB --> Event: 저장 완료
group Polling으로 상태 확인 group Polling으로 상태 확인
loop 상태 확인 (최대 30초) loop 상태 확인 (최대 30초)
FE -> Gateway: GET /jobs/{jobId}/status FE -> Gateway: GET /jobs/{jobId}/status
Gateway -> Event: Job 상태 조회 Gateway -> Event: Job 상태 조회
note over Event: Redis 캐시 조회\n(jobId로 상태 확인) Event -> Redis: Job 상태 조회\n(jobId로 상태 및 이미지 URL 조회)
Event -> Event: Redis에서 Job 상태 조회 Redis --> Event: {status, imageUrls}
Event --> Event: {status, imageUrls}
alt Job 완료 alt Job 완료
Event --> Gateway: 200 OK\n{status: COMPLETED, imageUrls} Event --> Gateway: 200 OK\n{status: COMPLETED, imageUrls}