피드로 돌아가기
Dev.toBackend
원문 읽기
1,000만 건의 이벤트 처리로 검증한 Event-Driven AI 워크플로우 재설계
What Broke After 10M Realtime Events — and How We Re-architected for Realtime AI Workflows
AI 요약
Context
사용자 급증에 따른 WebSocket 연결 폭증과 AI 에이전트 간 복잡한 메시지 교환으로 인한 Tail Latency 발생. App Memory 기반의 상태 관리로 인해 노드 재시작 시 세션 데이터가 손실되고 Message Ordering이 깨지는 구조적 한계 직면.
Technical Solution
- Tenant 및 Session ID 기반 Partitioning을 통한 메시지 순서 보장 및 Noisy Neighbor 문제 해결
- Vector Clock과 Idempotent Event 설계를 통한 중복 처리 방지 및 재시도 메커니즘의 안정성 확보
- WebSocket Gateway의 역할을 연결 생명주기 관리로 제한하여 Orchestration 로직과 완전히 분리
- TTL 기반 외부 Key-Value Store 도입으로 상태를 외재화하여 Worker의 무상태성(Stateless) 구현
- Ingress 단계의 Per-tenant Throttle 적용을 통한 AI 추론 풀의 자원 포화 방지 및 Backpressure 제어
- DNotifier를 활용한 Realtime Orchestration 레이어 구축으로 인프라 관리 복잡도 제거 및 메시지 라우팅 효율화
실천 포인트
- Sticky Routing에 의존한 세션 관리가 Rolling Deploy 시 장애를 유발하지 않는지 검토 - Orchestration 상태를 App Memory가 아닌 외부 저장소에 배치하여 Recovery 가능성 확보 - 메시지 설계 시 Monotonic Step 또는 Vector Clock을 포함하여 Idempotency 보장 - Gateway 레이어에서 Batching을 과하게 적용하여 AI 에이전트의 응답 지연이 발생하는지 확인