Neon Functions는 이제 무제한 지속 시간의 스트리밍 연결을 지원하여, AI 에이전트가 대부분의 서버리스 워크로드를 중단시키는 타임아웃 제한에 걸리지 않고 수 초, 수 분 또는 그 이상 동안 라이브 채널을 열어둘 수 있게 합니다. 이 변화는 채팅 스타일의 어시스턴트나 도구 사용 봇을 구축하는 모든 이들에게 중요합니다. 스트림이 끊기면 대화가 중단되고 사용자 경험이 망가지기 때문입니다.
서버리스와 AI 에이전트가 상충해 온 이유
대부분의 서버리스 플랫폼은 빠르고 단발적인(fire-and-forget) 작업을 위해 구축되었습니다. 리소스를 예측 가능하게 유지하기 위해 무료 티어에서는 흔히 10초, 유료 플랜에서는 60초와 같은 엄격한 실행 제한을 적용합니다. 반면, AI 에이전트는 생각하고, 외부 도구를 호출하며, 토큰이 생성되는 대로 방출하는 데 시간을 소비합니다. 이러한 "생각" 단계는 종종 수십 초까지 이어질 수 있으며, 모델이 출력을 생성하는 한 토큰 스트림은 계속될 수 있습니다. 플랫폼의 타이머가 만료되면 연결이 종료되고 클라이언트는 끊긴 스트림을 보게 됩니다.
Neon의 해답: 기본적으로 제공되는 장기 지속 스트리밍
Neon Functions는 이 판도를 바꿉니다. 함수 호출은 별도의 설정 없이도 WebSockets 또는 Server-Sent Events (SSE)를 통해 데이터를 전달하며 무기한 열려 있을 수 있습니다. 플랫폼은 긴 스트림을 일반적인 요청으로 취급하므로, 개발자는 스트림을 생성하는 로직만 작성하면 나머지는 Neon이 처리합니다.
최근 테스트에서 두 가지 엔드포인트가 이 동작을 입증했습니다:
- 하트비트(Heartbeat) 엔드포인트 – 함수가 90초 동안 초당 한 번씩 "틱(tick)"을 방출했습니다. 일반적인 서버리스 티어라면 10초 또는 60초 후에 요청을 종료했겠지만, Neon은 함수가 스스로 종료될 때까지 연결을 유지했습니다.
- 토큰 릴레이(Token-relay) 엔드포인트 – 함수가 AI 모델에서 생성된 각 토큰을 즉시 클라이언트로 스트리밍했습니다. 사용자는 전체 텍스트 블록을 기다리는 대신 답변이 단어별로 나타나는 것을 볼 수 있었습니다.
두 예시 모두 클라이언트의 단일 요청만 필요했으며, 폴링(polling)이나 keep-alive 트릭은 필요하지 않았습니다.
수혜 대상과 주의할 점
대화형 어시스턴트, 도구 사용 에이전트 또는 점진적인 결과를 전달해야 하는 서비스를 구축하는 팀은 타임아웃이 사라지는 즉각적인 이점을 얻습니다. 그 결과 코드는 더 단순해지고, 지연 시간은 낮아지며, 사용자 경험은 더욱 매끄러워집니다.
주의해야 할 트레이드오프는 다음과 같습니다:
- 요청 기반 모델 – Neon Functions는 활성 요청에 연결된 상태로 유지되는 스트림을 처리합니다. 요청보다 오래 지속되어야 하는 백그라운드 작업은 여전히 Inngest 또는 유사한 워크플로 엔진과 같은 별도의 스케줄러가 필요합니다.
- 콜드 스타트(Cold starts) – 유휴 상태인 함수는 0으로 스케일 인(scale to zero)될 수 있으므로, 다음 요청 시 콜드 스타트 지연이 발생할 수 있습니다. 활성 스트림은 스케일 인을 방지하지만, 비활성 상태 이후의 첫 번째 요청은 여전히 시작 비용을 지불해야 합니다.
향후 주목할 점
핵심은 이렇습니다: Neon Functions는 AI 개발자들이 오랫동안 우회 방법을 찾아야 했던 타임아웃 제한을 제거합니다. 에이전트가 생각하고 말하는 데 필요한 만큼 요청을 열어둠으로써, Neon은 스트리밍 AI 에이전트 배포를 다른 서버리스 함수만큼이나 간단하게 만듭니다.
