Durable Objects
Cloudflare推出的有状态边缘计算原语,每个实例全球唯一,提供强一致性,可在Workers之间协调共享状态,支持有状态的Serverless应用场景
核心事实
时间轴 (近 90 天)
在构建期剥离静态表后,每个 isolate 释放约 80MB V8 堆。
Durable Object 是全局唯一、单线程的 V8 isolate,按名字寻址,自带私有 SQLite 数据库和持久化定时器。
每个 Durable Object isolate 有硬性的 128MB 堆内存限制。
团队通过在 deno.json 中把 cloudflare:workers 映射到一个10行的桩类,使 deno test 能直接对 Durable Object 类跑原生测试。
Durable Object 的 SQLite 查询是微秒级的同步 C++ 调用,而不是网络往返。
只有 Durable Object 的 alarm() 运行在干净的根 IoContext 里,没有继承的 cdn-loop 头,也没有 30 秒响应后墙钟限制,前提是 alarm() 通过 doCtx.waitUntil 启动任务后立即退出。
BrowserPair 的云端组件使用 Cloudflare Workers、Durable Objects 和 D1。
Cloudflare Workers 是运行在边缘网络上的无服务器运行时;Durable Objects 提供强一致性的有状态对象;D1 是基于 SQLite 的托管关系型数据库。
Cloudflare 使用 Durable Objects 为长时间运行的安全调查提供状态持久化,支持跨多次智能体调用维持上下文。
Cloudflare 系统中,Durable Object 不可用时采用指数退避重试,三次尝试后升级给人工。
还有 16 条时间轴事件
全部知识事实 (20)
Cloudflare Durable Objects为每个对象分配全球唯一ID,并保证同一ID的所有请求路由到同一个实例,从而实现强一致性的状态存储
65%已验证Durable Objects是Cloudflare Workers平台的有状态计算单元,每个对象拥有独立的内存状态和持久化存储,同一个对象ID在任何时刻只有一个实例在运行
65%待验证Cloudflare Workers生态中的Durable Objects为有状态的Agent工作流提供强一致性的状态存储
90%待验证只有 Durable Object 的 alarm() 运行在干净的根 IoContext 里,没有继承的 cdn-loop 头,也没有 30 秒响应后墙钟限制,前提是 alarm() 通过 doCtx.waitUntil 启动任务后立即退出。
50%待验证Durable Object 是全局唯一、单线程的 V8 isolate,按名字寻址,自带私有 SQLite 数据库和持久化定时器。
50%待验证Durable Object 的 SQLite 查询是微秒级的同步 C++ 调用,而不是网络往返。
50%待验证团队通过在 deno.json 中把 cloudflare:workers 映射到一个10行的桩类,使 deno test 能直接对 Durable Object 类跑原生测试。
50%待验证每个 Durable Object isolate 有硬性的 128MB 堆内存限制。
50%待验证在构建期剥离静态表后,每个 isolate 释放约 80MB V8 堆。
50%待验证Cloudflare Workers 是运行在边缘网络上的无服务器运行时;Durable Objects 提供强一致性的有状态对象;D1 是基于 SQLite 的托管关系型数据库。
50%待验证BrowserPair 的云端组件使用 Cloudflare Workers、Durable Objects 和 D1。
50%待验证Cloudflare 使用 Durable Objects 为长时间运行的安全调查提供状态持久化,支持跨多次智能体调用维持上下文。
50%待验证Cloudflare 系统中,Durable Object 不可用时采用指数退避重试,三次尝试后升级给人工。
50%待验证推荐的混合架构是用Durable Objects保存短期上下文,用homelab/Qdrant保存长期知识,建立记忆层级并用TTL策略清理过期会话数据
50%待验证Durable Objects在数秒内无请求时会自动休眠,内存状态通过检查点保存,CPU占用降为零,唤醒时间视状态大小在10-100ms之间
50%待验证休眠机制的设计约束是:永远不要依赖内存状态在请求之间存活,所有关键状态必须在返回前写入持久化存储
50%待验证Durable Objects的隔离模型主要有三种:Per-Session(会话级)、Per-User(用户级)和Per-Tenant(租户级)
50%待验证Agents SDK为Durable Objects内置了SQL接口
50%待验证Durable Objects中内存中的JavaScript变量、未提交事务、临时表和预处理语句在DO休眠时不会持久化
50%待验证Cloudflare Workers + Durable Objects延迟为个位数毫秒级,但查询能力受限(SQL子集,不支持join和复杂事务)
50%