Show HN: Durable Actors – OSS Durable Objects with configurable compute TerseAI released Durable Actors, an open-source alternative to Cloudflare Durable Objects that provides stateful serverless functions with durable state and serialized execution, self-hostable on GCP with no vendor lock-in. The runtime supports Python and TypeScript clients, requires Node.js 22.19+ and Bun 1.3.9+, and is aimed at real-time applications such as chat systems, collaboration tools, and agent swarms. an open-source alternative to Cloudflare Durable Objects... with no vendor lock-in, memory limits, and observability built in. Durable Actors help you build real-time applications like chat systems e.g. ChatGPT, Codex , collaboration tools e.g. Notion , and agent swarms e.g. Devin . They provide stateful serverless functions , a foundational building block that abstracts away persistence, coordination, and infrastructure challenges in distributed systems. Live demo https://demo.useterse.ai · TypeScript documentation https://github.com/TerseAI/durable-actors/blob/main/docs/reference/typescript-guide.md · Python documentation https://github.com/TerseAI/durable-actors/blob/main/docs/reference/python-guide.md 1. Define an actor , a class with durable state i.e. data survives interruptions, errors, and restarts and serialized execution i.e. concurrent callers can update it safely . For example: - If you were building ChatGPT... a chat actor can store conversations that survive LLM flakiness and server crashes durable state - If you were building Notion... a document actor can coordinate concurrent edits from several people and agents serialized execution 1. Generate type-safe clients automatically with the Durable Actors SDK. For now, it supports Python and TypeScript. 2. Develop locally with one command and later self-host the Durable Actors runtime on GCP https://github.com/TerseAI/durable-actors/blob/main/docs/self-hosting.md . Install Node.js 22.19+ and Bun 1.3.9+. npx durable-actors init my-actors cd my-actors npm install npx durable-actors dev Run the server locally on your machine Define and export actors in your actor project’s src/actors.ts , the default entrypoint loaded by durable-actors dev . The runtime loads actors on demand and persists fields marked @Persisted . For example, a chat history actor: js import { openai } from "@ai-sdk/openai" import { streamText } from "ai" import { Actor, type ActorSocket, Interleave, Persisted } from "durable-actors" type Message = { role: "user" | "assistant"; content: string } export class ChatHistory extends Actor