//Durable Objects

Código serverless con estado propio y consistente

Crea y ejecuta servicios de chat, sistemas multijugador y aplicaciones colaborativas que mantienen a los usuarios sincronizados en todo el mundo, sin message brokers ni state stores que gestionar.

Apps serverless de larga duración

Los durable objects se ejecutan durante el tiempo necesario. Pueden procesar en segundo plano y atender grandes volúmenes de solicitudes simultáneas.

Todos los usuarios en sincronía

Todo durable object funciona como servidor y cliente WebSocket. Transmite el estado a todos los clientes conectados en pocas líneas de código.

Escala a millones según lo necesites

Dale a cada unidad de trabajo de tu aplicación un durable object ligero y aislado. Ejecuta millones de ellos, sin planificar capacidad.

Un coordinador para cada estado compartido

Toda llamada a un durable object llega a su única instancia activa, dondequiera que esté entre los más de 100 data centers. Una escritura condicional garantiza un solo dueño, aun con fallas de red. Tú escribes la clase. Azion gestiona la ubicación, el enrutamiento y el failover.

Usuarios en distintas regiones conectados a durable objects que se ejecutan en la infraestructura distribuida de Azion

Casos de uso

AI agents

Runtime de agents con estado

Dale a cada agent un durable object para guardar el estado de la conversación y las tareas, ejecutar pasos en orden y retomar después de una pausa.

Chat y mensajería

Chat en tiempo real con presencia

Usa un durable object por sala para guardar mensajes, saber quién está en línea y transmitir cada actualización a los usuarios conectados.

Juegos multijugador

Servidor de juego autoritativo

Mantén jugadores, reglas y marcador de cada partida en un durable object y envía cada jugada a todos en el momento en que ocurre.

Edición colaborativa

Sincronización de documentos en vivo

Envía todas las ediciones de un documento a su durable object, para que los cambios simultáneos se apliquen en orden y todos vean la misma versión.

Reservas y checkout

Reservas de inventario y asientos

Gestiona cada evento, carrito o SKU en su propio durable object, para que el mismo asiento o artículo nunca se venda ni se agregue dos veces.

Contadores

Contadores compartidos consistentes

Cuenta likes, votos, vistas o cuotas en un durable object, para que cada incremento se registre incluso con actualizaciones simultáneas.

El camino más corto hacia apps stateful en tiempo real

Las solicitudes de cualquier lugar llegan al mismo durable object, y una sola instancia coordina a todos los clientes que comparten su estado. Hace fan-in y fan-out por WebSocket, y el SQLite integrado guarda estado, eventos e historial junto a tu código.

DNZ
Axur
Radware
Arezzo
Contabilizei
Magazine Luiza
Fourbank
HeroSpark
Crefisa
Netshoes
Dafiti
Global Fashion Group
HeroSpark Logo

"Nuestra asociación con Azion transformó nuestras operaciones. Redujimos costos y mejoramos el rendimiento, recuperando más de 200 horas mensuales para enfocarnos en desarrollo estratégico."

Mateus Leonardi

CTO en HeroSpark

//Completo, no complejo

Todas las primitivas de desarrollo que necesitas

Preguntas Frecuentes

¿Qué es Durable Objects?

Durable Objects es cómputo serverless con estado propio y consistente en Azion Web Platform. Cada objeto es una sola instancia de tu código, identificada por un nombre único, con estado en memoria, almacenamiento SQL transaccional, soporte para WebSocket y alarmas. Toda solicitud a ese objeto llega a la misma instancia, lo que convierte al objeto en el punto de coordinación de todo lo que comparten muchos usuarios o servicios.

¿Cómo mantiene Durable Objects el estado consistente?

Tres garantías trabajan juntas. Solo una instancia de cada durable object se ejecuta a la vez, protegida por un registro de propiedad en almacenamiento durable. Esa instancia procesa un evento a la vez, así que las solicitudes simultáneas nunca se intercalan. Y cada escritura es una transacción ACID en la base de datos SQLite del propio objeto, confirmada en almacenamiento durable antes de enviar la respuesta.

¿Qué diferencia hay entre Durable Objects y Functions?

Functions procesa cada solicitud de forma independiente y no guarda nada entre ejecuciones. Un durable object conserva su estado entre solicitudes, mantiene conexiones WebSocket abiertas, ejecuta alarmas y atiende desde una sola instancia a todos los clientes que usan el mismo objeto. Usa Functions para lógica en el momento de la solicitud y Durable Objects cuando muchos clientes necesitan compartir y actualizar el mismo estado.

¿Cuándo usar Durable Objects en lugar de KV Store o SQL Database?

KV Store es eventualmente consistente y conserva la última escritura cuando dos escrituras llegan a la misma clave, lo que sirve para configuración y datos de sesión leídos en alto volumen. SQL Database sirve para datos relacionales que consulta toda la aplicación. Usa Durable Objects cuando una entidad, como una sala, un carrito o una cuenta, necesita actualizaciones en orden y una única fuente de verdad.

¿Cómo funcionan los WebSockets en Durable Objects?

Un objeto acepta conexiones WebSocket directamente y puede enviar mensajes a todas ellas. Cuando no llegan mensajes, el objeto hiberna mientras las conexiones siguen abiertas y despierta cuando llega el siguiente mensaje, así que las conexiones inactivas no mantienen el objeto en ejecución.

¿Cómo funcionan las alarmas?

Un objeto define una alarma para un momento futuro, y la plataforma despierta ese objeto cuando llega la hora, incluso si hibernó. En casos raros de falla, una alarma puede dispararse más de una vez, así que escribe handlers que puedan repetirse con seguridad.

¿Puedo crear AI agents con Durable Objects?

Sí. Dale a cada agent o conversación su propio durable object y guarda el historial en el almacenamiento SQL del objeto, para que cada interacción lea y escriba el mismo estado.

¿Cómo se compara Durable Objects de Azion con otras plataformas?

Azion sigue el mismo modelo de Durable Objects: una instancia por objeto, eventos procesados en orden, almacenamiento transaccional, WebSockets y alarmas. Cada objeto guarda sus datos en su propia base de datos SQLite, con los cambios guardados en almacenamiento durable fuera de la máquina que lo ejecuta. La API es compatible, así que el código de Durable Objects que ya tienes se ejecuta en Azion.

¿Cómo migrar código de Durable Objects existente a Azion?

El modelo de programación es el mismo: una clase, un nombre, almacenamiento, WebSockets y alarmas. La API es compatible, así que tus clases se ejecutan en Azion sin reescribirlas. Solo reemplaza los bindings actuales por la configuración de Azion.

//Build

Crea una vez.
Ejecuta en todas partes.

Consigue una ruta más rápida al lanzamiento, menor latencia y menos sobrecarga de infraestructura.