피드로 돌아가기
Concurrency, Retry, And Timeout Under One Owner
Dev.toDev.to
Backend

Ownership 기반 Task 통합 제어로 리소스 낭비 0ms 실현

Concurrency, Retry, And Timeout Under One Owner

AdmilsonCossa2026년 5월 11일13advanced

Context

AI Agent 환경에서 Retry, Timeout, Race 등 다양한 비동기 제어 라이브러리를 개별적으로 사용함에 따른 Lifecycle 파편화 발생. Promise.race나 Promise.all 사용 시 실패한 Task나 불필요한 작업이 계속 실행되어 불필요한 API 비용과 시스템 리소스 낭비 초래.

Technical Solution

  • 모든 Resilience Helper가 TaskFn를 입력받고 반환하는 Closed Algebra 구조 설계
  • 단일 Runtime Contract 기반의 Ownership 모델 도입으로 부모 Scope의 취소 신호를 모든 하위 작업에 전파
  • run.all 구조를 통한 첫 번째 실패 시 잔여 Task의 즉각적인 AbortSignal 전파 및 Cleanup 실행
  • run.race 구현 시 승리한 Task 외 모든 패배자의 TCP 연결 및 프로세스를 즉시 중단하는 메커니즘 적용
  • run.any 설계를 통한 첫 성공 시점에 나머지 지연 Task들을 강제 종료하여 리소스 점유 방지
  • Context-aware Signal을 통한 Typed CancelReason 제공으로 상세한 실패 원인 분석 및 대시보드 연동 지원

비동기 Task 오케스트레이션 설계 시 개별 라이브러리 조합보다 단일 Ownership을 가진 통합 런타임 계약(Contract)을 우선 검토하여 Zombie Request로 인한 비용 누수를 방지할 것

원문 읽기