Build real-time & multiplayer apps without a degree in distributed systems.
Ship multiplayer systems, chat services, session stores and other coordination-heavy apps using Durable Objects.
Stateful serverless
WebSockets included
Like a micro-VM
Embedded SQL database
Schedule Work
@cloudflare/actors
The building block for real-time apps
Power chat rooms, multiplayer sessions, collaborative docs, and live dashboards. Durable Objects run close to users, maintain consistent state, and broadcast updates instantly – no Redis clusters or orchestration required.
Durable Objects You can use Durable Objects to:
See real-world examples of Cloudflare Durable Objects
Build chat systems and messaging apps
Create collaborative editing experiences
Power multiplayer games and interactive experiences
Coordinate live dashboards and real-time analytics
The simplest way to build real-time systems at global scale
Durable Objects give every developer the building blocks for coordination, state, and real-time communication—without managing Redis, clusters, or distributed locks. Used by teams shipping multiplayer apps, live dashboards, and collaborative editors that just work.

import { DurableObject } from 'cloudflare:workers'; export default { async fetch(request, env) { const url = new URL(request.url); const counterName = url.searchParams.get('name'); if (!counterName) return new Response('missing ?name', { status: 400 }); const counterStub = env.COUNTERS.getByName(counterName); let count; switch (url.pathname) { case '/increment': count = await counterStub.increment(); break; case '/decrement': count = await counterStub.decrement(); break; case '/': count = await counterStub.get(); break; default: return new Response('not found', { status: 404 }); } return new Response(`${count}`); }, }; export class Counter extends DurableObject { async get() { return (await this.ctx.storage.get('value')) ?? 0; } async increment(amount = 1) { const newValue = (await this.get()) + amount; await this.ctx.storage.put('value', newValue); return newValue; } async decrement(amount = 1) { const newValue = (await this.get()) - amount; await this.ctx.storage.put('value', newValue); return newValue; } }
Durable Objects Pricing
Stateful compute for real-time coordination. View Storage & Data pricing details
Requests
100,000 requests / day
$0.15 / million requests
Duration
13,000 GB-s / day
$12.50 / million GB-s
SQL Rows Read
—
$0.001 / million rows
SQL Rows Written
—
$1.00 / million rows
SQL Stored Data
5 GB
$0.20 / GB-month
Read Request Units (KV Storage Backend)
—
$0.20 / million rows
Write Request Units (KV Storage Backend)
—
$1.00 / million rows
Delete Request Units (KV Storage Backend)
—
$1.00 / million rows
Stored Data (KV Storage Backend)
1 GB
$0.20 / GB-month
Liveblocks
Cloudflare released Durable Objects at just the right time for us. Without Cloudflare, hosting WebSocket servers might have required at least four additional people just for management. Using Durable Objects, we can provide serverless capabilities without a dedicated team.
Powerful primitives, seamlessly integrated
Built on systems powering 20% of the Internet, Durable Objects run on the same infrastructure Cloudflare uses to build Cloudflare. Enterprise-grade reliability, security, and performance are standard.
Compute
Storage
AI
Media
Network
Build without boundaries
Join thousands of developers who've eliminated infrastructure complexity and deployed globally with Cloudflare. Start building for free — no credit card required.