Construye apps multijugador en tiempo real sin 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.
Con estado sin servidores

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

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 integrada

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 de forma programada en el futuro con la API de Alarms (es integrada).

@cloudflare/actors

La biblioteca @cloudflare/actors proporciona un conjunto de abstracciones potentes sobre los Objetos Durables: el contenedor para la micro-VM del Objeto Durable.

Background Pattern
Durable Objects

El bloque de construcción para aplicaciones en tiempo real

Sala de chat potentes, 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 clústeres de Redis u 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 clústeres de Redis ni colas de mensajes. ¡Pruébalo!

Crear experiencias de edición colaborativa

Un objeto por documento coordina 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 cerca de los usuarios. Cada sala de juego se escala de forma independiente sin sobrecarga de infraestructura. ¡Pruébalo! https://github.com/cloudflare/templates/tree/main/multiplayer-globe-template

Coordinar tableros en tiempo real y Analytics

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 crear 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, clústeres 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 de forma gratuita — no se requiere tarjeta de crédito.