피드로 돌아가기
I burned a week comparing Inngest and AWS Step Functions so you don't have to
Dev.toDev.to
Infrastructure

Vercel 300s 타임아웃 극복을 위한 Durable Workflow 도입

I burned a week comparing Inngest and AWS Step Functions so you don't have to

Ethan2026년 5월 4일10intermediate

Context

LLM 기반의 다단계 AI 파이프라인으로 인해 총 480s 이상의 처리 시간이 소요되는 구조 설계. Vercel Pro의 300s 함수 실행 제한과 클라이언트 연결 종료 시 상태 손실로 인한 504 에러 및 데이터 유실 발생.

Technical Solution

  • Request-Response 모델에서 Durable Workflow 엔진으로 전환하여 HTTP 연결과 독립적인 상태 유지 구조 설계
  • Inngest의 Memoization 모델을 통한 TypeScript 기반의 Code-as-Config 워크플로우 구현
  • step.run() 래퍼를 활용해 각 단계의 실행 결과를 지속성 저장소에 캐싱하여 재시도 시 중복 실행 방지
  • side effect 발생 로직을 step.run() 내부로 격리하여 함수 재호출 시 발생하는 N번의 중복 실행 문제 해결
  • Supabase Realtime 채널과 연동하여 백엔드 워크플로우 진행 상태를 클라이언트에 비동기 스트리밍하는 구조 구축
  • Next.js 레포지토리 내 API 라우트를 통한 통합 배포 및 인프라 관리 복잡도 제거

- LLM 파이프라인의 총 예상 소요 시간이 플랫폼 타임아웃 제한을 초과하는지 확인 - 워크플로우 엔진 선택 시 인프라 통합 수준(AWS-native vs Next.js-native)과 개발 속도 간의 Trade-off 검토 - Memoization 모델 사용 시 함수 외부의 side effect가 재실행될 위험이 없는지 코드 레벨에서 검증 - 사용자 이탈 후 재접속 시 상태 복구를 위한 비동기 상태 전파 메커니즘(예: WebSocket, Realtime DB) 설계

원문 읽기