Durable Actors: 설정 가능한 컴퓨팅을 갖춘 OSS Durable Objects
요약
Durable Actors는 Cloudflare Durable Objects의 오픈 소스 대안으로, 영속성(persistence)과 조정(coordination) 기능을 갖춘 상태 저장 서버리스 함수를 제공합니다. 이를 통해 ChatGPT나 Notion 같은 실시간 협업 및 에이전트 시스템을 구축할 수 있습니다. TypeScript와 Python SDK를 지원하며, 로컬 개발부터 GCP 자체 호스팅까지 용이하게 설계되었습니다.
핵심 포인트
- 영속적인 상태(durable state)를 가진 액터 기반 아키텍처 제공
- 실시간 협업 및 에이전트 군집 구축에 최적화된 빌딩 블록
- TypeScript와 Python을 지원하며 타입 안전한 클라이언트 자동 생성 기능
- 로컬 개발 환경에서 GCP 런타임 자체 호스팅까지 가능
Durable Actors
Cloudflare Durable Objects의 오픈 소스 대안이며, 벤더 종속성(vendor lock-in), 메모리 제한 및 관측 가능성(observability)이 내장되어 있습니다.
Durable Actors는 채팅 시스템(예: ChatGPT, Codex), 협업 도구(예: Notion), 에이전트 군집(agent swarms)과 같은 실시간 애플리케이션을 구축하는 데 도움을 줍니다.
이는 분산 시스템에서 영속성(persistence), 조정(coordination), 인프라 문제를 추상화하는 기반 빌딩 블록인 _상태 저장 서버리스 함수(stateful serverless functions)_를 제공합니다.
실시간 데모 · TypeScript 문서 · Python 문서
작동 방식 (How it works)
- _액터(actor)_를 정의합니다. 액터는 _영속적인 상태(durable state)_를 가진 클래스(즉, 데이터가 중단, 오류 및 재시작 후에도 유지됨)와 _직렬화된 실행(serialized execution)_을 가집니다(즉, 동시 호출자도 안전하게 업데이트할 수 있음).
예를 들어:
- ChatGPT를 구축하는 경우... 채팅 액터는 LLM의 불안정성 및 서버 충돌에도 살아남는 대화 기록을 저장할 수 있습니다 (영속적인 상태).
- Notion을 구축하는 경우... 문서 액터는 여러 사람과 에이전트로부터 오는 동시 편집을 조정할 수 있습니다 (직렬화된 실행).
- Durable Actors SDK를 사용하여 타입 안전한 클라이언트를 자동으로 생성합니다. 현재 Python과 TypeScript를 지원합니다.
- 하나의 명령어로 로컬에서 개발하고 나중에 GCP에 Durable Actors 런타임을 자체 호스팅할 수 있습니다.
빠른 시작: 멀티플레이어 AI 채팅

1. 프로젝트 생성하기
Bun 1.4.2 이상을 설치합니다.
bunx durable-actors init my-actors
cd my-actors
bun install
...
2. 액터 정의하기
액터 프로젝트의 src/actors.ts에 액터를 정의하고 내보냅니다. 이는 durable-actors dev가 로드하는 기본 진입점입니다. 런타임은 온디맨드로 액터를 로드하며 @Persisted로 표시된 필드를 영속화합니다.
예를 들어, 채팅 기록 액터:
import { openai } from "@ai-sdk/openai"
import { streamText } from "ai"
import { Actor, type ActorSocket, Interleave, Persisted } from "durable-actors"
...
3. 백엔드 연결하기
액터(actors)를 기존 기술 스택에 통합하는 것이 매우 쉽습니다. 클라이언트만 생성하면 상호 작용할 수 있는 완벽하게 타입 안전한 계약(contract)을 얻게 됩니다.
bunx durable-actors generate
공유 채팅방에 대한 WebSocket 연결을 생성합니다:
import express from "express"
import { actors } from "../generated/index.js"
...
4. 프론트엔드 연결하기
import { useEffect, useRef, useState } from "react"
import { createRoot } from "react-dom/client"
...
오류 처리 및 재시도 기능이 포함된 전체 애플리케이션은 AI Chat 예제를 참고하세요.
5. 모니터링 및 디버깅
Durable Agents는 내장 관측 가능성(observability) 기능을 제공합니다:
예제 (Examples)
완벽한 샘플 애플리케이션은 AI Chat, Collaborative Documents, 그리고 Chatroom를 참고하세요.
커뮤니티 (Community)
버그 보고, 기능 요청, 문서 수정, 코드 기여는 환영합니다. 저장소 설정 및 확인 사항은 기여 가이드를 참고하고, 행동 강령을 따라주세요.
버그, 아이디어, 질문은 GitHub Issues를 이용하세요. 취약점은 보안 정책을 사용하여 비공개로 보고해 주세요.
개발 및 릴리스 노트는 GitHub Releases에서 확인하세요.
라이선스 (License)
MIT © 2026 Terse
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기