Crea apps en tiempo real y multijugador sin necesidad de un título en sistemas distribuidos.

Lanza sistemas multijugador, servicios de chat, almacenes de sesión y otras aplicaciones intensivas en coordinación utilizando Durable Objects.
Serverless con estado

Durable Objects son funciones sin servidor estatales: funcionan tanto tiempo como necesites, pueden realizar cálculos en segundo plano y manejan múltiples solicitudes de forma concurrente.

WebSockets incluidos

Cada Objeto Duradero también es un servidor y cliente de WebSocket. Transmite y coordina el estado en tiempo real con solo unas pocas líneas de código.

Como una micro-máquina virtual

Piensa en cada Objeto Durable como un micro-VM: crea miles (o millones) de ellos para realizar trabajo y tíralos cuando termines.

Base de datos SQL incorporada

Cada Durable Object tiene una base de datos SQLite integrada e incrustada. Serverless no tiene que ser sin estado.

Programar trabajo

Cada Objeto Durable puede realizar trabajo en segundo plano, consultar periódicamente una API y ejecutar código en el futuro de forma programada con la API de Alarms (es integrada).

@cloudflare/actors

La librería @cloudflare/actors proporciona un conjunto de abstracciones poderosas sobre los Objetos Durable: el contenedor del Objeto Durable micro-VM.

Background Pattern
Durable Objects

El bloque de construcción para apps en tiempo real

Salas de chat, sesiones multijugador, documentos colaborativos y tableros en vivo. Durable Objects se ejecutan cerca de los usuarios, mantienen un estado consistente y transmiten actualizaciones de inmediato – no se requieren clusters de Redis ni orquestación.

Crea sistemas de chat y Apps de mensajería

Un objeto por sala de chat gestiona todos los mensajes, la presencia de usuarios y el estado de la sala con consistencia global. No se requieren clusters de Redis ni colas de mensajes. Pruébalo!

Crear experiencias de edición colaborativa

Un objeto por documento coordina las ediciones en tiempo real de múltiples usuarios sin necesidad de conocimientos en sistemas distribuidos. Piensa en la arquitectura de Figma o Google Docs, simplificada.

Potencia juegos multijugador y experiencias interactivas

Un objeto por sesión de juego gestiona el estado del jugador, la lógica del juego y las actualizaciones en tiempo real próximas a los usuarios. Cada sala de juego se escala de forma independiente sin sobrecarga de infraestructura. Pruébalo!

Coordinar dashboards en vivo y analytics de tiempo real

Objetos agregan y envían actualizaciones en tiempo real a clientes conectados para monitoreo y eventos en vivo. Datos en tiempo real sin la pesadilla de la coordinación.

La forma más sencilla de construir sistemas en tiempo real a escala global

Los Durable Objects proporcionan a cada desarrollador los bloques de construcción para coordinación, estado y comunicación en tiempo real, sin tener que gestionar Redis, clusters o bloqueos distribuidos. Utilizados por equipos que lanzan aplicaciones multijugador, dashboards en vivo y editores colaborativos que simplemente funcionan.

Background Pattern
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 Compute pricing details

Requests

Free

100,000 requests / day

Paid

$0.15 / million requests

Duration

Free

13,000 GB-s / day

Paid

$12.50 / million GB-s

SQL Rows Read

Free

Paid

$0.001 / million rows

SQL Rows Written

Free

Paid

$1.00 / million rows

SQL Stored Data

Free

5 GB

Paid

$0.20 / GB-month

Read Request Units (KV Storage Backend)

Free

Paid

$0.20 / million rows

Write Request Units (KV Storage Backend)

Free

Paid

$1.00 / million rows

Delete Request Units (KV Storage Backend)

Free

Paid

$1.00 / million rows

Stored Data (KV Storage Backend)

Free

1 GB

Paid

$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.

Construye sin límites

Únete a miles de desarrolladores que han eliminado la complejidad de la infraestructura y han desplegado a nivel mundial con Cloudflare. Empieza a construir gratis — no se requiere tarjeta de crédito.