Deno(데노)가 클라우드플레어 워커스(Cloudflare Workers)의 강력한 기능 중 하나인 Durable Objects(듀러블 오브젝트) 모델을 자체 서버에서 실행할 수 있는 오픈소스 런타임 'celld'(셀드)를 공개했습니다. 이 프로젝트는 클라우드플레어(Cloudflare) 플랫폼에 구축된 애플리케이션 코드를 비교적 적은 수정만으로 개발자 자신의 인프라에서 호스팅할 수 있도록 돕는 것을 목표로 합니다.
celld는 Durable Object 하나를 'cell'(셀)이라는 이름의 작은 서버이자 전용 SQLite(SQLite) 데이터베이스(DB)로 취급합니다. 이는 사용자, 문서, 채팅방, AI 에이전트(AI Agent) 등 독립적인 상태를 가진 단위로 애플리케이션을 분할하여 사용할 수 있게 합니다. 각 cell은 독립적인 DB와 단일 쓰기(writer)를 가지므로, 하나의 거대한 공유 DB에서 발생할 수 있는 데이터 경합과 장애 범위를 구조적으로 분리하고 애플리케이션이 자연스럽게 샤딩(sharding)되도록 설계되었습니다. 사용하지 않는 cell은 메모리에서 내려가 오브젝트 스토리지(Object Storage)에만 보관되므로, 비활성 상태의 비용이 거의 들지 않으며 필요할 때 다시 활성화됩니다. 데이터와 배포 상태는 S3 호환 스토리지 또는 구글 클라우드 스토리지(Google Cloud Storage)에 보관되어 특정 클라우드플레어 계정이나 관리형 데이터베이스에 의존하지 않습니다.
이러한 접근 방식은 클라우드플레어 Durable Objects의 핵심 이점인 '상태를 가진 작은 서버를 수평적으로 많이 만드는 프로그래밍 모델'을 유지하면서도, 실행 머신과 데이터 저장소를 개발자가 직접 소유하고 관리할 수 있게 합니다. 이는 클라우드플레어의 특정 서비스에 대한 종속성을 줄이고자 하는 기업이나 개발자에게 매력적인 대안이 될 수 있습니다. 또한, HTTP뿐만 아니라 Durable Object의 알람(Alarm), 웹소켓(WebSocket), RPC(원격 프로시저 호출) 등 다양한 통신 방식을 지원하여 상태를 오래 유지하는 실시간 서비스나 에이전트와 같은 워크로드에도 적합합니다. 현재는 알파(Alpha) 단계로, TLS(전송 계층 보안), 인그레스(Ingress), 사용자 인증 등 운영 환경에 필요한 일부 기능은 직접 구성해야 하지만, 향후 클라우드플레어 D1(D1) 및 워크플로우(Workflows) 지원까지 계획하고 있어 워커스+D1 애플리케이션의 셀프호스팅 범위도 넓어질 전망입니다.