피드로 돌아가기
Dev.toBackend
원문 읽기
Idempotency Key 설계를 통한 AI 파이프라인 중복 비용 및 데이터 오염 제거
Overlooked Errors in My AI Content Pipeline: The Importance of
AI 요약
Context
LLM 응답 대기 시간(10s~120s) 동안 발생하는 네트워크 Packet Loss 및 Timeout으로 인한 중복 요청 발생. 단순 Retry 메커니즘이 Gemini Flash 등 고비용 AI 모델의 토큰 낭비와 데이터베이스 레코드 중복을 초래하는 구조적 한계 노출.
Technical Solution
- 요청 파라미터 해시 기반의 고유 Idempotency Key 생성 및 PostgreSQL UNIQUE 제약 조건을 통한 원자적 요청 처리
- ON CONFLICT DO NOTHING 구문을 활용하여 동시성 제어 및 중복 태스크 생성 원천 차단
- updated_at 기반의 Timeout 메커니즘을 도입하여 'Processing' 상태의 Zombie Task 자동 회수 및 재시도 가능 상태 전환
- Redis Distributed Lock을 통해 멀티 노드 환경 내 상태 업데이트 충돌 방지
- Provider별 Timeout 및 Error Code 차이를 수용하기 위해 단계별 시도(Attempt)를 개별 로그로 기록하는 상태 추적 구조 설계
- FastAPI 트랜잭션 내에서 'Started' 상태 선점 후 외부 API를 호출하는 At-least-once 전달 보장 전략 적용
실천 포인트
- AI API 호출 전 Idempotency Key 생성 및 DB Task 레코드 선점 여부 확인 - 처리 중 상태(Processing)에 대한 타임아웃 임계치 설정 및 클린업 스크립트 자동화 - 다중 모델 Fallback 구조 설계 시 각 Provider별 시도 이력을 분리하여 기록 - HTTP 409 Conflict 메트릭을 Prometheus로 모니터링하여 Retry 정책의 공격성 검토