Construyendo Aplicaciones Multijugador con Cloudflare Workers y Durable Objects

Video thumbnail
Recording is available to Multipass and Full ticket holders only
Please login if you have one.
Spanish audio is available in the player settings
Bookmark
Rate this content

Los Durable Objects, parte de la plataforma Cloudflare Workers, son la solución para un almacenamiento y coordinación fuertemente consistentes en el borde. En esta charla, aprenderás sobre los Durable Objects, por qué son adecuados para casos de uso colaborativos y cómo construir aplicaciones multijugador con ellos!

This talk has been presented at Node Congress 2023, check out the latest edition of this JavaScript Conference.

FAQ

Los Durable Objects en CloudFlare son una abstracción que aplica la filosofía serverless al estado y la coordinación. Permiten escribir una clase JavaScript con un método FetchHandler que se invoca en instancias de esa clase, facilitando la creación de aplicaciones colaborativas escalables como editores de documentos y servidores de juegos.

Los Durable Objects utilizan una API de almacenamiento persistente específica para cada instancia, basada en una interfaz de clave-valor con semánticas fuertemente consistentes. Esta API permite realizar operaciones de almacenamiento que son localmente coherentes y optimizadas para el rendimiento.

La plataforma de workers de CloudFlare permite ejecutar código JavaScript en una infraestructura global sin servidores, utilizando un tiempo de ejecución propio basado en el motor V8. Los workers son multitenant y ejecutan código en aislamientos V8, ofreciendo despliegue global inmediato y alta eficiencia en el arranque en frío.

Los Durable Objects aseguran la coordinación a través de un sistema de ID único global que permite a múltiples workers referenciar y interactuar con la misma instancia de un objeto duradero, garantizando así un punto de coordinación único y consistente para operaciones colaborativas.

Los Durable Objects utilizan 'IO Gates' que previenen condiciones de carrera y aseguran la consistencia del estado. Las puertas de entrada bloquean nuevos eventos mientras el objeto está esperando en el almacenamiento, y las puertas de salida previenen salidas de mensajes de red durante escrituras de almacenamiento pendientes.

Si un Durable Object está continuamente ocupado, puede experimentar retrasos en responder a nuevas solicitudes. Los Durable Objects tienen mecanismos de manejo de fallos que reinician el objeto en caso de que las operaciones de almacenamiento subyacente fallen o se excedan los tiempos de espera.

El modelo de facturación para los Durable Objects se basa en la duración del tiempo que el objeto está manejando una solicitud activa. No se factura por tiempo de inactividad o cuando el objeto está dormido, solo por el tiempo de procesamiento activo.

Cada Durable Object es un único hilo de ejecución de JavaScript. Si un Durable Object individual necesita manejar una carga de trabajo significativa continuamente, puede no ser el enfoque adecuado. La plataforma está diseñada para aplicaciones que pueden dividirse en múltiples objetos duraderos con cargas moderadas.

Matt Alonso
Matt Alonso
27 min
14 Apr, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Los Durable Objects son parte del objetivo a largo plazo de CloudFlare para expandir las posibilidades de las aplicaciones en los workers, permitiendo la construcción de aplicaciones colaborativas escalables. Los Durable Objects proporcionan una forma de almacenar el estado global y coordinar aplicaciones multi-cliente. Pueden ser creados lo más cerca posible del usuario y tienen IDs únicos para el enrutamiento de solicitudes. Los Durable Objects tienen una API de almacenamiento persistente con semántica fuertemente consistente y compuertas de IO para prevenir errores de corrección. Son adecuados para aplicaciones colaborativas y pueden ser usados con WebSockets. El impacto en el rendimiento y las réplicas de lectura son consideraciones para acceder a los Durable Objects a nivel global.
Video transcription and chapters available for users with access.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Viviendo al Límite
React Advanced 2021React Advanced 2021
36 min
Viviendo al Límite
The Talk discusses the future of React and introduces new APIs, including streaming rendering and server components. React Suspense allows for asynchronous loading of components and data fetching. The use of serverless computing, specifically Cloudflare Workers, is explored as a way to improve performance. The Talk emphasizes the potential for simplifying the React ecosystem and the excitement about the new API.
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
Node Congress 2022Node Congress 2022
31 min
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
This Talk discusses database access on the edge with CloudFlare workers and the challenges of serverless platforms. It explores solutions for database access, including CloudFlare-specific solutions and using Prisma data proxy. The Prisma toolkit and demo are showcased, demonstrating how to convert an application to use a database. The process of setting up Prisma Data Platform and deploying the application to CloudFlare workers is explained. The Talk concludes with insights on database usage and the differences between serverless, CDN, and the Edge.
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
JSNation 2024JSNation 2024
20 min
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
The Talk discusses browser automation using the Worker's Browser Rendering API, which allows tasks like navigating websites, taking screenshots, and creating PDFs. Cloudflare integrated Puppeteer with their workers to automate browser tasks, and their browser rendering API combines remote browser isolation with Puppeteer. Use cases for the API include taking screenshots, generating PDFs, automating web applications, and gathering performance metrics. The Talk also covers extending sessions and performance metrics using Durable Objects. Thank you for attending!
Sitios web estáticos primero con Cloudflare Workers
Node Congress 2022Node Congress 2022
30 min
Sitios web estáticos primero con Cloudflare Workers
The Talk covers the historical landscape of web development, the rise of static site generators, the serverless revolution, edge computing, and using Cloudflare services to enhance static websites. It explores the challenges of early web development, the shift to static sites and client-side rendering, and the advantages of server-side and client-side rendering. It also discusses Cloudflare services like Cloudflare workers, KV, durable objects, and HTML rewriter for building fast and minimal hosting solutions. The Talk highlights the use of DurableObjects for analytics and integration, dynamic content on static sites, JAMstack, and the advantages of using Cloudflare Workers for automatic deployment, multiple language support, and combining static pages with JavaScript functions. It introduces the concept of edge computing and the difference between Cloudflare Pages and Workers. It also touches on error handling and the use of HTML rewriter, Cloudflare KVstore, and DurableObjects for managing state and storing dynamic data.
El Futuro de los Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
El Futuro de los Runtimes de JavaScript
Today's Talk explores the future of JavaScript runtimes, their evolution, and impact on software development. It discusses the historical trends of JavaScript, the adoption of new tools and libraries, and the convergence of Node and Deno. The emergence of isolate clouds and their potential to replace traditional VMs and containers is also highlighted. Additionally, the talk touches on the possibilities of JavaScript in exotic use cases, its impact on machine learning, and the potential for TypeScript to become the de facto language for JavaScript development.
Construyendo aplicaciones full-stack en el Edge
React Advanced 2022React Advanced 2022
9 min
Construyendo aplicaciones full-stack en el Edge
This Talk explores building full stack applications on the edge and the blurring line between front end and back end development. It discusses the benefits of using the JAMstack and APIs for scalable web development. The Talk also highlights the improvements in edge technology, such as serverless functions and efficient data storage, and the deployment of functions and durable objects on the edge network. Overall, the Talk emphasizes the importance of delivering high-quality experiences with low latency through edge computing.

Workshops on related topic