Durable Objects - Todo En Todas Partes Todo De Una Vez Por No Mucho Dinero

Rate this content
Bookmark

Los Durable Objects de Cloudflare son un nuevo entorno de ejecución de JavaScript que facilita la construcción de servidores backend con estado, a demanda y en el borde, tan fácil y barato como las funciones sin servidor.

Al colocar el cálculo y el estado, los Durable Objects reducen la complejidad a gran escala y te permiten concentrarte en la construcción de tu producto.

En esta charla rápida, codificaremos en vivo un backend en tiempo real desde cero, mostraremos cómo funcionan los Durable Objects y exploraremos cómo puedes aplicar esta herramienta versátil a una amplia gama de problemas de ingeniería cotidianos.

This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.

FAQ

Los Durable Objects son una tecnología desarrollada por Cloudflare. Permiten construir aplicaciones colaborativas como salas de chat y juegos, ofreciendo un paradigma de programación versátil con objetos de estado duradero y direccionables de manera única.

Los Durable Objects permiten mantener el estado en aplicaciones en tiempo real, facilitando la creación de aplicaciones colaborativas al mantener los datos consistentes y accesibles en múltiples sesiones y usuarios simultáneamente.

Los Durable Objects están limitados a 128 MB de RAM y cada valor de almacenamiento no puede exceder los 128 kilobytes. Estas limitaciones pueden requerir ajustes en la estructura de datos para aplicaciones con grandes necesidades de memoria o datos.

La facturación de los Durable Objects se basa en tres componentes principales: el cómputo utilizado, el almacenamiento ocupado y la memoria utilizada por el objeto mientras está en ejecución. Ofrecen un modelo de coste eficiente, especialmente para aplicaciones que no requieren constante procesamiento activo.

Durable Objects son ideales para aplicaciones que requieren mantener un estado consistente en tiempo real, como juegos multijugador, aplicaciones de chat, pizarras colaborativas, y cualquier sistema que beneficie de la sincronización de estado en tiempo real entre usuarios.

La autorización y seguridad en los Durable Objects se manejan a nivel de endpoint HTTP. Se puede integrar con sistemas de autenticación existentes o personalizados, permitiendo un control de acceso seguro y eficiente.

Jani Eväkallio
Jani Eväkallio
31 min
08 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Durable Objects es un paradigma de programación versátil de Cloudflare que permite entornos de servidor con estado y direccionables de manera única. Simplifica el desarrollo de características, permite actualizaciones en tiempo real a través de conexiones WebSocket y proporciona un almacenamiento clave-valor incorporado para almacenamiento a largo plazo. Se puede utilizar para crear aplicaciones colaborativas, gestionar el almacenamiento de datos de manera eficiente y explorar el cálculo y los datos co-ubicados en el borde. Otras empresas como Azure también ofrecen tecnologías similares. KV de Deno y Flame de fly.io son productos innovadores que eliminan la necesidad de aprovisionar bases de datos y clústeres de Kubernetes.

1. Introducción a Durable Objects

Short description:

Vamos a empezar. Gracias, Kevin, por esta maravillosa introducción. Hoy no vamos a hacer diapositivas. Vamos a hacer codificación en vivo. Así que hoy quiero hablarles de algo llamado Durable Objects, que es un mal nombre para algo realmente genial. ¿Puedo ver un show de manos? ¿Quién aquí antes de venir a esta charla ha oído hablar de lo que son los Durable Objects? Tenemos unas 10 manos. Y mantén la mano levantada si realmente has ejecutado Durable Objects en producción.

Vamos a empezar. Gracias, Kevin, por esta maravillosa introducción. Es un trabajo ingrato ser un MC. ¿Podemos tener un aplauso para Kevin y los MCs también? Sí. Me encanta ser parte de estas conferencias. He sido parte de casi todos los React Debriefing en el pasado. Y es mi primera vez hablando. Y no hablo muy a menudo porque odio hacer diapositivas. Así que hoy no vamos a hacer diapositivas. Vamos a hacer codificación en vivo. Pero porque cometí el error de nombrar esta charla todo, en todas partes, todo a la vez. Pensé que podría haber algunos aficionados al cine allí. Así que puse una diapositiva al principio sólo para que la gente no se enoje conmigo por no, ya sabes, poner las diapositivas. Así que esta es la diapositiva. Es una animación de keynote. Mírala. Es hermosa. Ahí. Wow. Mira eso. Wow. Bien. Así que hoy quiero hablarles de algo llamado Durable Objects, que es un mal nombre para algo realmente genial. Así que este año, como todos los años al final del año, reflexiono sobre lo que he estado trabajando de manera diferente este año. ¿Cuáles son algunas de las nuevas herramientas y prácticas que han mejorado, ya sabes, mi capacidad para hacer mi trabajo como ingeniero. Y Durable Objects es uno de esos descubrimientos de este año que realmente quiero compartir con ustedes. ¿Puedo ver un show de manos? ¿Quién aquí antes de venir a esta charla ha oído hablar de lo que son los Durable Objects? Bien. Tenemos unas 10 manos. Y mantén la mano levantada si realmente has ejecutado Durable Objects en

2. Introducción a los Durable Objects de Cloudflare

Short description:

Bien. Entonces, como dos o tres personas. Genial. Esto es exactamente lo que esperaba. Durable Objects es una tecnología de una empresa llamada Cloudflare. Es una empresa de tecnología realmente genial, pero no son realmente buenos explicando a la gente cómo usarla o vendiéndola o algo así. Así que pensé que en lugar de intentar explicártelo, simplemente te voy a mostrar cómo funciona. Cloudflare es una de las mayores empresas de infraestructura de Internet, conocida por sus servicios de CDN, caché, proxy y defensa contra bots. Tienen una plataforma de desarrollo llamada Workers, donde puedes ejecutar código sin servidor. Los trabajadores de Cloudflare se ejecutan en cada una de sus 300 ubicaciones de servidores, lo que hace que los servicios sean extremadamente rápidos. Durable Objects es un paradigma de programación versátil, que pronto te demostraré.

en producción. Bien. Entonces, como dos o tres personas. Genial. Esto es exactamente lo que esperaba. Y no te preocupes, esto no es tu culpa. Es culpa de Cloudflare. Así que primero, un pequeño preámbulo. Durable Objects es una tecnología de una empresa llamada Cloudflare. Yo no trabajo para Cloudflare. Solo soy un fan entusiasta. No me pagan por ello. Ni siquiera revisaron mis diapositivas, así que todo podría estar incorrecto. Pero por otro lado, puedo decir lo que quiera sobre Cloudflare. Y lo que pasa con Cloudflare es que es una empresa de tecnología realmente genial, que tiene una tecnología realmente genial, y no son realmente buenos explicando a la gente cómo usarla o vendiéndola o algo así. Así que pensé que en lugar de intentar explicártelo, simplemente te voy a mostrar cómo funciona. Bien, así que esto es Cloudflare. Si no has oído hablar de esta empresa, es una de las mayores empresas de infraestructura de Internet. Puede que los conozcas como un proveedor de CDN, como un proveedor de caché, proveedor de proxy, defensa contra bots, cosas así. Pero más que eso, tienen una plataforma de desarrollo perfectamente maravillosa llamada Workers, donde puedes ejecutar código serverless, al igual que Lambda. Pero a diferencia de Lambda que generalmente se ejecuta en una sola ubicación o zona de disponibilidad, dependiendo de cómo lo configures, los trabajadores de Cloudflare se ejecutan en cada una de sus 300 ubicaciones de servidores que tienen alrededor del mundo. Y automáticamente en su red, básicamente solo dirigen tu solicitud al más cercano. Así que esto significa que gracias a que estas cosas están cerca, generalmente estos servicios son extremadamente rápidos. Pero si vamos a este sitio web de la plataforma de desarrollo, detrás de aquí, debajo de estos Workers, hay una sección llamada durable objects. Y aquí, si vamos, podemos descubrir qué son los durable objects y qué hacen. Y recuerda, yo no trabajo para Cloudflare. Y nos dicen que podemos construir aplicaciones colaborativas, como salas de chat, juegos, pizarras. Esto es realmente genial. Me encanta jugar juegos, como construir juegos y salas de chat y pizarras. Pero en realidad, la mayoría de nosotros no tenemos la oportunidad de construir este tipo de software en el día a día. Y esto es, creo, la mayor subestimación de lo que son los durable objects, es que ellos

QnA

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

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
React Advanced Conference 2021React Advanced Conference 2021
27 min
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
Top Content
The Talk discusses optimizing rendering of big tables using Flipper, a new version that is ten times faster with improved user interaction and richer data. It explores optimizing rendering with React, virtualization, filtering, sorting, and windowing techniques. The introduction of the Flipper Datasource packet simplifies handling updates, inserts, and removals. The performance of the Flipper data source package is excellent, even in a debug build of React, with minimal CPU usage. The Q&A session covers incremental sorting, dynamic row height, and the potential for two-dimensional virtualization in the future.
Aplicaciones web de alta velocidad: más allá de lo básico
JSNation 2022JSNation 2022
30 min
Aplicaciones web de alta velocidad: más allá de lo básico
This talk covers the latest features in Chrome DevTools, including network tab analysis, performance tab optimization, and user flows. It discusses optimizing HTTP requests with fetch priority to improve loading time. The performance tab provides insights on frame drops, long tasks, and the importance of minimizing total blocking time. The talk also highlights the optimization of page rendering and introduces user flows in Chrome DevTools.
Depuración con Chrome DevTools
JSNation Live 2021JSNation Live 2021
11 min
Depuración con Chrome DevTools
Here are some tips for better utilizing DevTools, including using the run command, customizing keyboard shortcuts, and emulating the focus effect. Learn how to inspect memory, use the network panel for more control over network requests, and take advantage of console utilities. Save frequently used code as snippets and use local overrides for easy editing. Optimize images by using a more optimized format like AVIF and track changes in the network panel to see the reduced data size.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Construyendo Pinia desde cero
Vue.js Live 2024Vue.js Live 2024
70 min
Construyendo Pinia desde cero
Workshop
Eduardo San Martin Morote
Eduardo San Martin Morote
Sumergámonos en cómo funciona Pinia bajo el capó construyendo nuestro propio `defineStore()`. Durante este masterclass cubriremos algunos conceptos avanzados de Vue como la inyección de dependencias y los scopes de efectos. Esto te dará una mejor comprensión de la API de Composición de Vue.js y Pinia. Requisitos: experiencia en la construcción de aplicaciones con Vue y su API de Composición.
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Vue.js Live 2024Vue.js Live 2024
119 min
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Workshop
Alvaro Saburido
Alvaro Saburido
Presentamos "Masterclass de Desarrollo Web 3D con TresJS", un taller especializado creado para desarrolladores de Vue.js ansiosos por explorar el mundo de la gráfica 3D en sus aplicaciones web. TresJS, un potente renderizador personalizado para Vue, está diseñado específicamente para funcionar perfectamente con el sistema reactivo de Vue. Este taller ofrece una inmersión profunda en la integración de visualizaciones 3D sofisticadas y experiencias interactivas directamente en aplicaciones Vue, aprovechando las fortalezas únicas de los ecosistemas de Vue y TresJS.
Este taller está diseñado para desarrolladores de Vue.js que buscan ampliar sus habilidades en la tercera dimensión, diseñadores de UI/UX interesados en incorporar elementos 3D en aplicaciones web, y desarrolladores front-end curiosos sobre el potencial de la gráfica 3D para mejorar las experiencias de usuario. Debes estar familiarizado con Vue.js para aprovechar al máximo este taller.
Lo que Aprenderás- Introducción a TresJS: Descubre los fundamentos de TresJS y cómo se integra con el ecosistema de Vue para dar vida a la gráfica 3D.- Creación de Escenas 3D con Vue: Aprende a construir escenas 3D complejas utilizando componentes Vue, mejorando tus interfaces de usuario con visuales dinámicos e inmersivos.- Interactividad y Animación: Domina las técnicas para hacer tus escenas 3D interactivas, respondiendo a las entradas del usuario para una experiencia cautivadora.- Integración con Funcionalidades de Vue: Explora la integración avanzada de TresJS con la reactividad, los composables y la tienda Vuex de Vue para gestionar el estado en aplicaciones web 3D.- Rendimiento y Mejores Prácticas: Obtén información sobre la optimización de tus escenas 3D para el rendimiento y las mejores prácticas para mantener aplicaciones web fluidas y receptivas.