피드로 돌아가기
Supabase Edge Functions Advanced — Streaming, WebSockets, and Background Jobs
Dev.toDev.to
Backend

SSE, WebSocket, waitUntil 기반의 서버리스 백엔드 인프라 최적화

Supabase Edge Functions Advanced — Streaming, WebSockets, and Background Jobs

kanta13jp12026년 5월 3일6intermediate

Context

단순 REST 핸들러 중심의 서버리스 환경에서 발생하는 LLM 응답 지연 및 실시간 통신 부재 문제를 분석. CPU 타임 제한과 메모리 제약으로 인해 무거운 작업 수행 시 클라이언트 응답 시간이 증가하는 병목 현상 발생.

Technical Solution

  • LLM 출력의 블로킹 방지를 위해 SSE(Server-Sent Events) 기반의 Streaming Response 구조 설계
  • Deno.upgradeWebSocket을 활용한 프로토콜 업그레이드로 서버리스 환경 내 양방향 실시간 통신 구현
  • EdgeRuntime.waitUntil 도입을 통한 응답 즉시 반환 및 백그라운드 분석 파이프라인 비동기 처리
  • pg_cron 확장 기능을 통한 특정 스케줄 기반의 Edge Function 호출 자동화 체계 구축
  • 지수 백오프(Exponential Backoff)와 Jitter를 적용한 외부 API 호출의 안정성 및 재시도 로직 구현
  • Isolate 단위 메모리 한계를 극복하기 위한 Redis 또는 Supabase Realtime 기반의 상태 관리 전략 채택

1. LLM 연동 시 사용자 경험 개선을 위해 SSE 스트리밍 적용 여부 검토

2. 응답 속도 최적화를 위해 무거운 로직을 waitUntil로 분리하여 Fire-and-Forget 패턴 적용

3. WebSocket 사용 시 Isolate별 독립 메모리 특성을 고려하여 분산 환경의 상태 동기화 방안 마련

4. 외부 API 의존성 해결을 위해 Exponential Backoff 기반의 재시도 메커니즘 구현

원문 읽기