聊天室、实时协作和有状态Agent都有同一个难题:服务不能处理完一次请求就“失忆”,还得持续保存每个会话的状态。Deno旗下的开源项目celld,试图把Cloudflare的Durable Objects——让每个命名对象同时运行代码并保存状态的服务模型——搬到用户自己的机器或云账户里。
celld把每个对象视为一个“cell”:一台有名字的小服务器,配有自己的SQLite数据库。多台运行celld的机器共享同一个对象存储桶,由一次带条件的写入决定谁拥有某个cell,保证同一时间只有一个节点负责它。长期状态写入S3兼容存储、Google Cloud Storage或Azure Blob Storage;项目因此不需要另设成员协议、故障探测器或共识服务。两台及以上节点还可先把写入复制到其他节点磁盘,再异步上传存储桶;单节点则必须等待上传完成,所以写入会慢得多。
它不只覆盖Durable Objects,也计划从现有wrangler.json部署Workers、KV、Queues、D1、R2和Workflows等服务。价值在于,开发者多了一个自托管选项:控制权更高,但运维责任也回到自己手中。需要Cloudflare全球网络、GPU或浏览器集群的产品不在其范围内,兼容性仍有缺口。