상시 가동형 에이전트의 백프레셔(backpressure)는 어떻게 처리하시나요?
How are you handling backpressure in always-on agents?
핵심 요약
상시 가동형 AI 에이전트 운영 시 발생하는 데이터 적체 문제를 해결하기 위한 전략과 우선순위 설정 방안을 논의함.
- 데이터 적체 문제 — API나 모델의 속도 제한으로 인해 큐가 쌓이는 상황에 대한 대처법 논의함.
- 상태 기반 처리 — 이벤트 큐 대신 최신 상태를 기준으로 데이터를 병합하거나 불필요한 작업을 삭제함.
- 우선순위 전략 — 최신 이벤트가 이전 이벤트를 무효화하는 경우, 작업의 중요도에 따라 처리 순서를 결정함.
- 모니터링 강화 — 'caught up through' 타임스탬프를 활용해 에이전트의 작업 처리 상태를 가시화함.
상시 가동되는 에이전트는 해피 패스(happy path)를 상상하기엔 딱 좋지. 근데 내가 계속 신경 쓰이는 실패 모드는 브라우저, API, 혹은 모델이 레이트 리밋(rate-limited) 걸렸을 때 큐가 계속 쌓이는 상황이야.
복구 후에 모든 이벤트를 똑같이 처리하면, 에이전트는 이미 쓸모없어진 작업들을 처리하느라 몇 시간씩 허비할 수도 있어. 내가 생각하는 많은 워크플로우에는 이런 게 필요해:
- 지속 가능한 커서(durable cursor)나 소스별 워터마크
- 반복되는 이벤트를 위한 멱등성 키(idempotency keys)
- 대체된 작업을 합치거나 버리는 정책
- 소스별로 '어디까지 처리했는지' 보여주는 타임스탬프
진짜 골치 아픈 건 장애 이후의 우선순위 결정이야. 새로운 이벤트 하나가 이전 이벤트 10개를 무효화할 수도 있는데, 단순히 큐에 쌓인 시간만 따지는 건 부족하거든.
너희는 뭘 먼저 처리할지 결정할 때 이벤트 발생 시간, 작업 가치, 소스별 SLA, 아니면 또 다른 뭘 기준으로 삼고 있어?


