AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Durable Objects – 에이전트별 상태를 서버리스에서 오래 유지하는 Cloudflare 액터 런타임

Durable Objects는 Cloudflare Workers 위에서 ID별 실행 인스턴스와 영속 저장소를 묶어 제공하는 액터(actor) 스타일 런타임이다. 일반 서버리스 함수는 요청마다 상태가 사라지지만, Durable Objects는 특정 ID로 라우팅되는 isolate가 SQLite 저장소와 WebSocket 연결을 함께 관리한다.

왜 에이전트에 맞는가

AI 에이전트는 세션 상태, 대화 기록, 예약 작업, 실시간 클라이언트 연결, 장기 실행 결과를 함께 다룬다. 이를 무상태 함수와 외부 DB만으로 구성하면 잠금, 큐, 재시도, fan-out, 세션 라우팅을 직접 조립해야 한다. Durable Objects는 “사용자 1명”, “에이전트 1개”, “채팅방 1개”, “브라우저 세션 1개” 같은 단위를 하나의 객체로 모델링하게 해 이 복잡도를 줄인다.

핵심 구성

구성역할
V8 isolate요청이 들어올 때 깨는 서버리스 실행 단위
ID 기반 라우팅같은 이름·ID의 요청을 같은 객체 인스턴스로 전달
SQLite 저장소Durable Object별 로컬 영속 저장소
WebSocket객체가 연결을 직접 보유하고 브로드캐스트
Alarms미래 시점 작업, 주기적 작업 예약

이 구조는 WorkspaceDO, ChannelDO, UserDO, AgentDO처럼 도메인 객체를 그대로 인프라 객체로 옮기는 방식과 잘 맞다.

장점

  • 상태 모델이 단순하다: 객체 하나가 자기 저장소와 이벤트를 관리하므로 외부 DB 트랜잭션과 분산 잠금 의존이 줄어든다.
  • 실시간 기능이 자연스럽다: WebSocket 연결을 객체가 직접 들고 있어 채팅, 알림, 공동 편집, 에이전트 진행 상황 스트리밍에 적합하다.
  • 비활성 비용이 낮다: idle 상태에서는 저장소 비용 중심으로 과금되어 대량의 per-user, per-agent 객체를 만들기 쉽다.
  • 로컬 개발이 가볍다: wrangler 기반 개발 환경으로 Docker, Postgres 없이도 많은 프로토타입을 돌릴 수 있다.

주의할 점

Durable Objects가 동시성을 단순하게 만들지만, 모든 문제를 없애지는 않는다. 단일 객체 내부에서 긴 LLM 호출을 저장소 게이트와 섞으면 읽기 요청이 오래 막힐 수 있다. 오래 걸리는 모델 호출, 외부 API 호출, 사용자 승인 대기는 객체 상태 업데이트와 분리해 설계해야 한다.

또한 TypeScript와 Cloudflare 런타임에 가장 좋은 경험이 맞춰져 있다. Rust, Go, Python 중심 팀은 SDK·예제·네이티브 라이브러리 제약을 더 많이 만난다. BYO cloud나 온프레미스 요구가 강한 고객에게도 Cloudflare 종속성은 현실적인 제약이다.

대안과 비교

선택지강점한계
Durable Objects서버리스 + 액터 + SQLite + WebSocket 통합Cloudflare 종속, TypeScript 중심
Restate Virtual Objectsdurable execution과 객체 semantics, self-host 가능별도 런타임 운영 필요
Rivet Actorsisolate 기반 actor 인프라생태계 성숙도 확인 필요
Temporal류 워크플로장기 실행·재시도·감사 추적실시간 per-session 상태 모델은 별도 설계 필요

언제 쓰면 좋은가

  • 사용자별 AI 비서, 프로젝트별 코딩 에이전트, 세션별 브라우저 에이전트처럼 상태가 작고 개수가 많은 워크로드
  • 실시간 진행 상황, 채팅, 알림, 협업 UI를 함께 제공해야 하는 SaaS
  • cloudflare-agentsflue처럼 Cloudflare 기반 에이전트 SDK를 쓰는 팀
  • DB·큐·WebSocket 서버를 따로 운영하지 않고 에이전트 프로토타입을 빠르게 배포하려는 개발자

관련 문서

  • cloudflare-agents — Durable Objects 기반 AI 에이전트 SDK
  • flue — Cloudflare Agents SDK 위에서 실행 가능한 TypeScript 에이전트 프레임워크
  • browser-run — Cloudflare 기반 브라우저 실행 인프라
  • agentic-inbox — Cloudflare Workers 위에서 돌아가는 AI 에이전트 내장 이메일 클라이언트

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)