Durable Actors: Cloudflare Durable Objects의 오픈소스 대안
요약
Durable Actors는 Cloudflare Durable Objects의 오픈소스 대체재로, 벤더 종속성 없이 영구적인 상태를 가진 서버리스 함수를 제공합니다. 이 프로젝트는 채팅 시스템이나 협업 도구 등 실시간 애플리케이션에 적합하며, 로컬 개발 및 GCP 자체 호스팅을 지원하여 높은 안정성을 자랑합니다.
핵심 포인트
- 상태 유지: 중단/오류 후에도 데이터가 보존되는 영구 상태를 제공합니다.
- 안전한 동시성: 호출이 직렬 실행되어 여러 사용자의 동시 업데이트도 안전하게 처리합니다.
- 개발 용이성: 로컬에서 단일 명령어로 개발 및 GCP에 자체 호스팅할 수 있습니다.
- 주요 활용 분야: AI 채팅, 협업 문서 편집 등 상태 관리가 중요한 애플리케이션에 유용합니다.
Durable Actors는 TerseAI가 공개한 프로젝트로, MIT 라이선스를 따릅니다. README에 따르면 이 프로젝트는 Cloudflare Durable Objects의 오픈소스 대체재라고 주장하며, 벤더 종속성이나 메모리 제한이 없고 자체적인 관측 가능성을 제공합니다. 이는 채팅 시스템, 협업 도구, 에이전트 클러스터와 같은 실시간 애플리케이션에 사용되는 '상태를 가진 serverless 함수'를 제공합니다.
주요 구성 요소는 세 부분으로 나뉩니다. 첫 번째는 actor입니다: 중단, 오류 발생, 재시작 후에도 데이터가 유지되는 영구 상태(persistent state)를 가진 클래스입니다. 호출은 순차적으로 직렬 실행되며, 여러 호출자가 동시에 업데이트해도 안전합니다. 두 번째는 SDK로, 타입 안정성이 보장된 클라이언트를 자동으로 생성하며 현재 Python과 TypeScript를 지원합니다. 세 번째는 런타임으로, 로컬에서 단 하나의 명령어로 개발할 수 있으며 이후 GCP에 자체 호스팅(self-host)할 수 있습니다.
제가 가장 주목한 부분은 README의 빠른 시작 가이드가 여러 사람이 공유하는 AI 채팅 예제라는 점입니다. 여러 사람이 하나의 대화를 공유하고, 질문이 순서대로 대기하며, 응답이 모든 사람에게 스트리밍되고, 대화 상태는 영구적으로 저장됩니다.
README에는 두 가지 예시가 제시되어 있습니다. ChatGPT와 유사한 채팅의 경우, 대화 기록은 대규모 언어 모델(LLM) 오류나 서버 충돌 후에도 손실되지 않습니다. Notion과 유사한 문서의 경우, 여러 사람과 에이전트가 동시에 편집해도 조율할 수 있습니다.
제한 사항: README에는 자체 호스팅만 언급되어 있으며, 배포 문서는 현재 GCP에 초점을 맞추고 있습니다. SDK는 현재 Python과 TypeScript만 지원합니다.
시작하려면 먼저 Node.js 22.19 이상 및 Bun 1.3.9 이상을 설치해야 합니다. 그런 다음 npx durable-actors init my-actors를 실행하고 디렉터리로 이동하여 npm install을 실행한 후, npx durable-actors dev를 실행하여 로컬에서 서비스를 시작합니다.
공식 상태: 작성자는 Hacker News에 Show HN으로 게시했으며, 레포지토리는 버그 보고와 코드 기여를 환영하고 있으며, 버전 설명은 GitHub Releases에 올라옵니다.
저는 에이전트 애플리케이션에서 상태 손실과 동시 쓰기 충돌(concurrency write conflict)이 매우 흔한 백엔드 문제라고 생각합니다. 따라서 README의 다중 사용자 채팅 예제를 먼저 실행해보고, 응답 스트리밍 출력 도중에 서비스를 재시작했을 때 대화 상태가 온전히 복구되는지 확인해 볼 계획입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 X Claude/Anthropic의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기