Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Las funciones en el Edge están empujando los límites de la computación sin servidor, pero con nuevas herramientas surgen nuevos desafíos. Debido a sus limitaciones, las funciones en el Edge no permiten conectarse a bases de datos populares como PostgreSQL y MySQL. En esta charla, aprenderás cómo puedes conectar e interactuar con tu base de datos desde Cloudflare Workers utilizando el Proxy de Datos de Prisma.


Puedes consultar las diapositivas de la charla de Alex aquí.

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

FAQ

El borde es una forma de cómputo sin servidor que está distribuido y se implementa en la red de centros de datos de CloudFlare, permitiendo ejecutar el código de tu aplicación mucho más cerca de tu usuario.

Los trabajadores de CloudFlare son más ligeros y distribuidos, utilizando el motor V8 para ejecutar código de aplicación, lo que reduce el tiempo de inicio y la latencia en comparación con las plataformas sin servidor tradicionales que utilizan contenedores completos.

Dado que el motor V8 solo admite conexiones basadas en HTTP y las bases de datos tradicionales dependen de conexiones TCP de larga duración, esto genera un desafío para conectar bases de datos desde los trabajadores de CloudFlare, que son sin estado y pueden agotar rápidamente las conexiones disponibles.

Prisma ofrece el Proxy de Datos de Prisma, que actúa como un intermediario entre tu aplicación serverless y tu base de datos, ayudando a gestionar grupos de conexiones y evitar agotar los límites de conexiones que podrían provocar solicitudes fallidas.

Prisma aumenta la productividad y la confianza del desarrollador al ofrecer un modelo de datos legible y seguro en cuanto a tipos, soporte para autocompletado y una API robusta para interactuar con la base de datos, funcionando con diversos sistemas de bases de datos.

La migración involucra inicializar Prisma en el proyecto, modelar los datos en Prisma, cargar los datos existentes en la base de datos y refactoring la aplicación para utilizar Prisma Client para realizar consultas a la base de datos.

Prisma Studio es una interfaz gráfica de usuario moderna e intuitiva que permite visualizar y manipular datos de tu base de datos de manera sencilla, siendo uno de los tres componentes principales de Prisma.

Alex Ruheni
Alex Ruheni
31 min
17 Feb, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla discute el acceso a la base de datos en el Edge con CloudFlare Workers y los desafíos de las plataformas sin servidor. Explora soluciones para acceder a la base de datos, incluyendo soluciones específicas de CloudFlare y el uso del Proxy de Datos de Prisma. Se presentan el kit de herramientas y la demostración de Prisma, demostrando cómo convertir una aplicación para usar una base de datos. Se explica el proceso de configuración de la Plataforma de Datos de Prisma y la implementación de la aplicación en CloudFlare Workers. La charla concluye con ideas sobre el uso de la base de datos y las diferencias entre sin servidor, CDN y el Edge.

1. Introducción a Cloud Flarewalkers

Short description:

Hola, amigos. Hoy hablaré sobre el acceso a la base de datos en el borde con Cloud Flarewalkers. Discutiremos qué es, cómo es diferente de las plataformas sin servidor tradicionales y los dolores de crecimiento de las sin servidor. Los trabajadores de CloudFlare ejecutan el código de su aplicación mucho más cerca de su usuario, que incluso podría estar en la misma ciudad. Los trabajadores de CloudFlare son significativamente más ligeros porque la plataforma se basa en el motor V8. Los trabajadores de CloudFlare también ofrecen un alto rendimiento, con un tiempo de inicio más corto y una latencia más baja. Sin embargo, la conexión a bases de datos sigue siendo un desafío desde los trabajadores de CloudFlare debido a las limitaciones del motor V8.

Hola, amigos. Hoy hablaré sobre el acceso a la base de datos en el borde con Cloud Flarewalkers. Mi nombre es Alex, y soy un defensor del desarrollo en Prisma. No dudes en contactarme después de la charla si tienes alguna pregunta, o simplemente cualquier pregunta aleatoria o conexión.

Esta charla se dividirá en cuatro secciones. La primera parte tratará sobre Cloud Flarewalkers, o el borde. Discutiremos qué es, cómo es diferente de las plataformas sin servidor tradicionales y los dolores de crecimiento de las sin servidor. La segunda sección echará un vistazo a Prisma y al Proxy de Datos de Prisma, explorando cómo el Proxy de Datos te ayuda a interactuar con tu base de datos en el borde. Y la tercera parte, o la tercera sección, será la parte emocionante, donde tendremos una demostración. Migraremos una aplicación que utiliza un archivo JSON para almacenar y recuperar citas, y moveremos los datos a una base de datos y lo desplegaremos en el borde. Finalmente, haremos un resumen de la charla al final. Y por ahora, vamos a empezar.

Entonces, ¿qué es el borde? Parece ser una palabra de moda que se usa mucho, pero ¿qué significa? El borde es una forma de cómputo sin servidor que está distribuido. Y en el contexto de los trabajadores de CloudFlare, se implementa en la red de centros de datos de CloudFlare.

Ahora que entiendes qué es el borde y cómo funciona CloudFlare, echemos un vistazo a cómo los trabajadores de CloudFlare son diferentes de los servidores sin servidor tradicionales. Como mencioné antes, está distribuido. Las funciones sin servidor tradicionales se implementan en centros de datos o regiones específicas. En contraste, los trabajadores de CloudFlare ejecutan el código de tu aplicación mucho más cerca de tu usuario, incluso podría estar en la misma ciudad. Los trabajadores de CloudFlare también son significativamente más ligeros porque la plataforma se basa en el motor V8. Es el mismo motor que alimenta los navegadores basados en Chromium como Chrome y Edge, y también el tiempo de ejecución de Node.js. Por lo tanto, cada vez que se invoca tu trabajador de CloudFlare, en lugar de aprovisionar un contenedor completo para tu función sin servidor, el trabajador de CloudFlare crea un aislamiento de V8 que es significativamente más pequeño. Y si has oído hablar del problema de inicio en frío en los servidores sin servidor, entonces entenderás por qué esta es una tecnología emocionante.

Los trabajadores de CloudFlare también ofrecen un alto rendimiento. Esto se suma a los dos primeros puntos. Debido a que el entorno es significativamente más ligero, lo que conduce a un tiempo de inicio más corto, o incluso posiblemente ninguno. Y también experimentarás una latencia más baja cada vez que invoques tu función porque se invocará desde el centro de datos que está más cerca de ti. Ahora sé que todo esto suena encantador, pero los trabajadores de CloudFlare todavía sufren los mismos problemas que las funciones sin servidor tradicionales en el contexto de las bases de datos. Por lo tanto, la conexión a las bases de datos sigue siendo un desafío desde los trabajadores de CloudFlare. Esto se debe a que el motor V8 solo admite conexiones basadas en HTTP. Sin embargo, las bases de datos tradicionales dependen de conexiones TCP de larga duración.

2. Desafíos y soluciones para el acceso a la base de datos

Short description:

Las diferentes bases de datos tienen diferentes implementaciones para conectarse a ellas, lo que puede ser caótico. Las conexiones a la base de datos en entornos sin servidor pueden agotarse fácilmente, lo que provoca fallas en las solicitudes. Las posibles soluciones incluyen soluciones específicas de CloudFlare, usar Postgres para convertir una base de datos existente en una API RESTful, modificar los controladores de Postgres y MySQL para usar HTTP con Deno y usar el proxy de datos de Prisma.

Esto se vuelve frustrante. Las diferentes bases de datos presentan diferentes implementaciones de las interfaces de cómo puedes conectarte a ellas, lo cual es caótico y está en marcha. Las conexiones a la base de datos también son estado-dependientes, mientras que los entornos sin servidor son sin estado, lo que significa que puedes quedarte fácilmente sin conexiones a la base de datos porque cada trabajador crea un nuevo grupo de conexiones. Y cuando te quedas sin conexiones, las solicitudes en tu aplicación comenzarán a fallar.

Entonces, ¿cómo puedes resolver este problema? Bueno, tienes varias opciones disponibles, al igual que en el resto del ecosistema de JavaScript. Una opción sería utilizar soluciones específicas de CloudFlare como el almacén de clave-valor del trabajador y los objetos duraderos. La segunda opción, si tienes una base de datos existente, es usar Postgres, que convierte tu base de datos Postgres existente en una API RESTful. Otra opción sería convertir, usar los controladores de Postgres y MySQL y modificar para usar HTTP con Deno, creo. Y finalmente, la esencia de esta charla, que es el proxy de datos de Prisma y esta charla se centrará en esto, pero siéntete libre de probar las otras opciones por ti mismo también.

Entonces, Prisma es un ORM de última generación y seguro en cuanto a tipos para NodeJS que funciona tanto con JavaScript como TypeScript. Admite varias bases de datos como SQLite, MySQL, Postgres, SQL Server y también CockroachDB y MongoDB, que aún están en vista previa. Los principales beneficios de Prisma es que aumenta la productividad al permitir a los desarrolladores consultar los datos de manera natural y familiar, y también proporciona un modelo de datos legible para los humanos. Prisma también aumenta la confianza del desarrollador con la seguridad de tipos, el autocompletado, y la API robusta para interactuar con tu base de datos. Entonces, incluso si no usas TypeScript en tu proyecto, la mayoría de los editores proporcionarán autocompletado para tus consultas de base de datos cuando estés usando Prisma.

3. Prisma Toolkit and Demo

Short description:

La herramienta Prisma consta de tres componentes: Prisma Client, Prisma Migrate y Prisma Studio. El proxy de datos de Prisma actúa como intermediario entre tu aplicación y tu base de datos, gestionando grupos de conexiones y permitiéndote aprovechar los beneficios de tu base de datos relacional y las herramientas de Prisma en el edge. La demo consiste en convertir una aplicación que utiliza un archivo JSON a una base de datos, migrar los datos y utilizar Prisma para realizar consultas. Para configurar el proyecto, instala la CLI y el cliente de Prisma, e inicializa el proyecto con el comando 'npx prisma init'.

Y la herramienta Prisma consta de tres componentes. Prisma Client. Eso es el cliente generado automáticamente y seguro en cuanto a tipos. Prisma Migrate. Esa es la herramienta declarativa de modelado y migración de datos. Genera migraciones de esquema de base de datos SQL totalmente personalizables basadas en tu esquema de Prisma. Y el tercer componente es Prisma Studio. Es una interfaz gráfica de usuario moderna e intuitiva para tu base de datos.

Y ahora esto nos lleva al proxy de datos de Prisma. Es un intermediario entre tu aplicación y tu serverless, tu aplicación o función serverless y tu base de datos. Te ayuda a gestionar grupos de conexiones asegurándote de no agotar tus límites de conexiones que podrían provocar solicitudes fallidas. Entonces, cuando consultas tu base de datos, el cliente de Prisma se conectará a tu base de datos a través del proxy de datos que utiliza HTTP.

Ahora, esto es emocionante porque te permite aprovechar todas las partes buenas de tu confiable base de datos relacional y las herramientas de desarrollo de Prisma en el edge. Aún puedes adoptar almacenes de datos específicos de CloudFlare, como Work As Gavy y Durable Objects para casos específicos donde tenga sentido, al tiempo que te beneficias de consultar tu base de datos central para la mayoría de tu aplicación. Ahora esto nos lleva a la parte más emocionante de la charla, que es la demo. Lo que haremos es convertir la aplicación que utiliza un archivo JSON para obtener y crear citas o obtener citas por ID y moveremos esa aplicación migraremos los datos a una base de datos y convertiremos las rutas existentes para comenzar a utilizar Prisma para consultar los datos.

Ahora vamos a pasar a la demostración. Ya he configurado la plantilla base para el proyecto. Tiene tres rutas específicas en el archivo index.ts, que es el router.getQuotes aquí. Podemos obtener citas por ID y también hacemos un post que en realidad no crea una nueva cita, sino que simplemente devuelve lo que enviaste. El proyecto también utiliza Webpack. Tiene una configuración mínima de Webpack para que funcione. Voy a descomentar el alias de Prisma que usaremos en una sección posterior para la demostración. El alias de Prisma te ayudará a resolver correctamente la dependencia del cliente de Prisma cuando estés consultando una base de datos. Así que vamos a ello. El primer paso para configurar nuestro proyecto es agregar Prisma. Voy a instalar la CLI de Prisma como una dependencia de desarrollo y luego instalar el cliente de Prisma como una dependencia normal. Esperaré a que se cargue por un momento. Ahora que hemos instalado la dependencia del cliente de Prisma, voy a inicializar nuestro proyecto para comenzar a utilizar Prisma ejecutando el comando npx prisma init. Lo que hace este comando es crear un nuevo directorio en nuestro proyecto llamado Prisma con el archivo schema.prisma.

4. Using schema.prisma and Seeding the Database

Short description:

Esta sección cubre el uso del archivo schema.prisma para definir modelos de datos, habilitar la función de proxy de datos, modelar los datos de las citas, aplicar el esquema a la base de datos y cargar la base de datos con datos del archivo data.json.

Este archivo schema.prisma se utilizará para definir nuestros modelos de data, que se aplicarán a nuestra database. El comando también crea un archivo .env, donde almacenaremos nuestras variables de entorno para el proyecto.

Por ahora, agregaré y pegaré mi cadena de conexión a mi database. Ahora que está hecho, iré al archivo schema.prisma. Y comenzar a usar el proxy de data en tu proyecto. Puedes habilitarlo agregando la bandera de función de vista previa en el bloque de generador en tu archivo schema.prisma. Data proxy. Data proxy. Eso está hecho. Cerrar esto. Expandir esto.

Ahora vamos a modelar nuestros data. Nuestra cita, como podemos ver en el archivo data.json, contiene tres campos, tres propiedades, que son el ID, el contenido y el autor. Obtuve esto de una API en Internet. Esto estará en el repositorio stata que compartiré antes de que termine esta charla.

Entonces crearemos un nuevo modelo, cita, que tendrá un ID, que es una cadena, y queremos que este sea generado automáticamente. También tenemos la propiedad de contenido, el campo de contenido, que será de tipo cadena. También queremos tener el autor, que es una cadena, y si quieres, puedes agregar un campo de creado en tu tabla, que será una marca de tiempo de cuándo se agregó el registro a la database. Y queremos que esto se genere automáticamente utilizando la función now.

Ahora que hemos modelado, apliquemos este esquema, o el esquema que acabamos de crear, a nuestra database. Ejecutaré el comando npx Prisma DB push para aplicar lo que tenemos a nuestra database. Sí, como tenía datos existentes, los eliminaré.

El siguiente paso es migrar o cargar la database con los códigos que tenemos en el archivo data.json. Entonces, dentro del archivo schema.prisma, dentro de la carpeta Prisma, agregaré un archivo seed.ts. Y aquí, pegaré un código, que explicaré en un momento. Lo que hace es importar el cliente Prisma de nuestros módulos de nodo, y también estamos importando las citas del archivo JSON. Y como es una matriz de aproximadamente 500 citas, recorreremos cada una de ellas e insertaremos un registro en nuestra database dentro de este bloque.

El siguiente paso ahora es ejecutar este archivo, para que podamos ver los datos. Usaré ts node para ejecutar nuestro archivo TypeScript. Entonces, npx, ts node, prisma, c.ts.

5. Setting up Prisma Data Platform

Short description:

Hemos inicializado nuestro proyecto con Prisma, migrado datos del archivo JSON a la base de datos y configurado el proyecto en la Plataforma de Datos de Prisma. Hemos importado el repositorio, agregado la cadena de conexión y obtenido la clave de API del proxy de datos. Ahora, necesitamos actualizar el archivo .env con la nueva cadena de conexión.

Espera un momento. Veamos. Y está hecho. Hasta ahora hemos inicializado nuestro proyecto con Prisma y hemos migrado nuestros datos existentes data del archivo JSON a la base de datos. El siguiente paso es configurar nuestros proyectos en la Plataforma de Datos de Prisma para poder obtener una clave de API o una cadena de conexión que nos permita comunicarnos con nuestra base de datos mediante HTTP.

El primer paso es ir a GitHub y crear un nuevo repositorio. Lo llamaré Prisma CFW, abreviatura de Cloud Flow Workers. Lo haré privado y lo crearé. Localmente, primero confirmaré mis archivos en GitHub. Pero primero inicializaré, obtenerlo, y haré git add, y luego confirmaremos todos nuestros archivos. Bien, ahora eso está hecho, continuaremos e importaremos nuestro proyecto en la Plataforma de Datos de Prisma, pero primero verifiquemos si los cambios se sincronizaron.

Oh, me salté un paso en el que necesitábamos agregar un origen primero, antes de poder enviarlo a GitHub. Pegaré el comando de GitHub. Los cambios se han enviado a GitHub, así que si actualizo esto, deberíamos poder ver nuestros nuevos cambios, los cambios que acabamos de hacer. Genial, ese es un buen progreso. El siguiente paso es importar el proyecto en la Plataforma de Datos de Prisma. Así que continuaré y crearé, hacer clic en Nuevo Proyecto. Le daré un nombre, Prisma CFW. Importaremos el repositorio, Prisma CFW. Todo está bien. Siguiente, continuaré, usaré mi propia base de datos y también pegaré mi cadena de conexión. El proxy de datos de Prisma se generará una vez que completemos la configuración del proyecto en la plataforma de datos. Bien. Ahora eso está hecho. Se te proporcionan dos cadenas de conexión una vez que se haya configurado el proyecto. La primera será la clave de API del proxy de datos que copiaré. Y la segunda es tu cadena de conexión a tu base de datos. He terminado, así que haré clic en hecho aquí y todo está bien. Así que volvamos a nuestro proyecto. Y en el archivo .env, crearé una duplicado de la variable de entorno de la URL de la base de datos y pegaré la que acabamos de crear pero comentaré la primera.

6. Refactorización y Despliegue

Short description:

Ahora es el momento de refactorizar nuestra aplicación. Reemplazamos la importación de data.json con Prisma Client y refactorizamos las rutas para consultar, obtener y crear citas desde la base de datos. Después de la refactorización, probamos la aplicación usando el comando wrangle-dev y Postman. Finalmente, desplegamos la aplicación en Cloudflare workers con el comando Wrangler publish.

Dále, sí. Genial, ahora eso está hecho. Es hora de refactorizar nuestra aplicación. Lo siento, no ahora. Entonces, volvamos a nuestro archivo index.ts, reemplazaremos nuestra importación de data.json con la importación de Prisma Client. Y luego crearemos una nueva instancia de Prisma Client. Y primero refactorizaremos nuestra primera ruta. Haremos una consulta para obtener todas las citas de nuestra database. Entonces const quotes es igual a await Prisma.quote.findMany. Eso está hecho. Refactoricemos ahora la obtención de una cita por ID. Entonces const result es igual a await Prisma.quote.findUnique. Y luego necesitamos proporcionar una cláusula where que requiere el ID, que viene del valor de params aquí. Por último, necesitaremos poder crear un nuevo registro. Así que aquí esperaremos a Prisma.quote.create. Y necesitaremos pasar la propiedad data, que requiere los valores de contenido y autor, que pueden ser del cuerpo de la solicitud. Ahora eso está hecho, el siguiente paso es regenerar nuestro cliente Prisma. para que pueda usar el proxy de datos de Prisma.

Ahora que has terminado de refactorizar la aplicación, vamos a probar la aplicación ejecutando el comando wrangle-dev. La aplicación se está ejecutando. Y está lista. Cambiaré a Postman y aumentaré el tamaño de fuente. Y esto ya lo pegué en el comando para obtener todas las citas. Esto funciona. La primera vez que haces una solicitud, es lenta, pero con el tiempo el tiempo de respuesta se reduce. Así que copiemos un ID y aquí en GetById, reemplacemos esto con nuestro nuevo ID y solicitémoslo. Y sí, sí, funciona. Y creemos una nueva cita, que dije que el borde rima con el borde porque creo que es una cita genial. Y boom, eso funciona, tenemos nuestra respuesta. Y felicitaciones, finalmente hemos migrado la aplicación. Ahora, el último paso es desplegar nuestra aplicación en Cloudflare workers ejecutando el comando Wrangler publish.

7. Reflexiones Finales y Resumen

Short description:

El proyecto solo tiene 97 kilobytes de tamaño y se realiza relativamente rápido. Lo hemos creado con éxito. El Edge aún está en sus etapas iniciales y este flujo de trabajo proporciona una de las configuraciones más simples para comenzar. La ventaja de usar Prisma es que el proxy de datos se implementa más cerca de su base de datos centralizada. Hemos cubierto los desafíos y ventajas de trabajar con CloudFlare workers, qué es Prisma y qué es el proxy de datos de Prisma, y cómo agregar acceso a la base de datos a una aplicación y desplegarla en CloudFlare workers. Gracias por escuchar.

Como mencioné antes, puedes notar aquí que el proyecto solo tiene 97 kilobytes de tamaño y se realiza relativamente rápido. Así que voy a copiar este comando, esta URL. Volver a Cloudflare workers, volver a Postman y luego reemplazar esta URL con la que está en producción. ¡Y boom, la aplicación funciona! Lo hemos creado con éxito.

Ahora, volvamos a las diapositivas. Y si quieres construir la misma aplicación o refactorizar la aplicación, está disponible en GitHub. Puedes ajustarla. Y si también quieres jugar con la aplicación, la demo en vivo está disponible en Cloudflare workers y desplegada. Y como puedes ver, toda la experiencia de construcción y migración rápida se sintió relativamente rápida. En unos 10 minutos, pudimos completar con éxito todo el proceso de migración.

Ahora, con algunas reflexiones finales, el Edge aún está en sus etapas iniciales, y este flujo de trabajo proporciona una de las configuraciones más fáciles o las configuraciones más simples para comenzar. Sería útil si tu data proxy, dado que se implementa en una región específica, está más cerca de tu base de datos, y también tu aplicación se implementa más cerca de tus usuarios. El Edge es un nuevo paradigma que te hace razonar de manera diferente sobre los datos porque los datos están distribuidos. Y cuando se trata de bases de datos relacionales, distribuir estos datos es un problema de ciencias de la computación porque mantener la consistencia en todo el mundo, si se implementa en múltiples regiones, es un desafío. Entonces, la ventaja de usar Prisma es que el proxy de datos se implementa más cerca de tu base de datos centralizada. Por lo tanto, puedes usar tus flujos de trabajo de desarrollo normales para construir tu aplicación. Y esta charla, como resumen final, cubrió los desafíos y las partes buenas, los desafíos que existen al trabajar con CloudFlare workers, o plataformas serverless. También cubrimos las ventajas que tienen los CloudFlare workers sobre otras plataformas. También discutimos qué es Prisma y qué es el proxy de datos de Prisma y el problema que resuelve. Y finalmente, agregamos acceso a la base de datos a una aplicación y luego la desplegamos en CloudFlare workers. Gracias por escuchar. Espero que hayas encontrado útil la charla y no dudes en contactarme si tienes alguna pregunta. Este es un momento emocionante para trabajar en el edge.

8. Uso de la Base de Datos y Expectativas

Short description:

Alex pregunta sobre la base de datos utilizada con aplicaciones serverless. El 44% respondió PostgresQL, pero la pronunciación varía. El orador esperaba una combinación de bases de datos Postgres y MySQL debido a la popularidad de la habilidad de planificación.

Entonces Alex pregunta, ¿qué database estás usando con tus aplicaciones serverless? Y vemos que el 44% respondió PostgresQL. Ni siquiera sé si así se pronuncia, nunca lo dije en voz alta. ¿Lo digo correctamente, Alex? No estoy seguro si es PostgreSQL, Postgres, depende de cómo prefieras decirlo. Sí, pero probablemente la mayoría diga Postgres, sí. Oh, solo Postgres, entendido. Sí. ¿Qué opinas de este resultado? ¿Es lo que esperabas? Bueno, está cambiando, no estoy completamente seguro. Dado que también la habilidad de planificación es nueva, muchas personas podrían estar migrando a ella, por lo que es más una base de datos MySQL. Pero sí, está cerca de lo que esperaba, sí. Sí, sí, genial.

QnA

Preguntas del público sobre Prisma Proxy y Edge

Short description:

CCCrish preguntó sobre la proximidad del proxy de Prisma al edge y la base de datos real. El orador explicó que si bien el Proxy de Datos se implementa en una región específica, el escenario ideal es implementarlo lo más cerca posible de la base de datos. El orador también mencionó la posibilidad de tener múltiples centros de datos en países como Alemania. Otra pregunta fue sobre cómo migrar una aplicación a gran escala para usar Prisma Proxy, que actualmente está en acceso temprano. El orador desaconsejó usarlo en producción, pero alentó la experimentación y los comentarios. Por último, el orador explicó las diferencias entre serverless, CDN y Edge, destacando que las CDNs son una red de centros de datos implementados a nivel mundial, mientras que Edge permite la implementación de lógica de computación más lejos de los usuarios.

De acuerdo, pasemos a las preguntas del público. Permítanme ingresar al servidor de Discord. CCCrish está preguntando, según entendí, ¿el proxy de Prisma está cerca del edge, verdad? Pero, ¿qué pasa con la base de datos real? No está exactamente cerca del edge, actualmente el Proxy de Datos se implementa en una región específica y es preferible implementarlo lo más cerca posible de su base de datos para que no esté completamente listo para el edge, pero el caso de uso perfecto sería si sus usuarios están, por ejemplo, en una ciudad específica. Pero con suerte, a medida que el edge madure, podremos mejorar el Proxy de Datos, así como el acceso a la base de datos en el edge, sí.

Entonces, una pequeña pregunta de seguimiento para mí. Noté que dijiste, cuando el edge mejore, y dijiste ciudades, ¿sabes si realmente hay países que tienen múltiples ubicaciones de edge? E incluso, puedo imaginar un país como Alemania, estás en Alemania, que tendrías un surfer del edge de la misma compañía en, digamos, Hamburgo, y otro en Berlín, y otro en Frankfurt, algo así. ¿También es posible eso? Sí, diría que sí. Creo que compañías como Cloudflare tienen sus centros de datos en todo el mundo, y estoy seguro de que probablemente haya múltiples centros de datos en Alemania, por ejemplo. Así que sí, es posible. Eso es genial. Sí, las cosas se están acelerando. Bien, gracias.

La siguiente pregunta es de Hale to the Wood. ¿Cómo sugieres migrar una aplicación a gran escala para usar algo como Prisma Proxy? Por ejemplo, una que actualmente usa funciones serverless, hablando directamente con DynamoDB. Prisma actualmente no admite DynamoDB, por lo que esto sería un desafío mayor. No estoy seguro de tener mejores prácticas, pero actualmente el Prisma Data Proxy también está en acceso temprano, por lo que no te recomendamos que lo uses en producción. Sin embargo, aún puedes usarlo para experimentar y proporcionar comentarios para que también podamos prepararlo para que esté disponible para todos. Sí. De acuerdo. Sí.

Luego, otra pregunta. ¿Cuál es la diferencia entre serverless, CDN y Edge? Agregaré algo a eso. Buena pregunta. Estos son conceptos similares pero aún diferentes. El serverless es como una arquitectura de implementación donde realmente no tienes que preocuparte por tu infraestructura en absoluto, o simplemente administrar cualquier servidor que esté involucrado cuando implementas aplicaciones. Ahora, las CDNs o redes de entrega de contenido, son una red de centros de datos que se implementan en todo el mundo, por ejemplo, Netlify y Cloudflare, donde puedes ejecutar tu aplicación lo más cerca posible de tu usuario, y el Edge lleva esto un paso más allá y se implementa. Ahora, puedes ejecutar lógica de computación, no tan cerca como sea posible de tus usuarios. Espero que esa sea una explicación lo suficientemente buena para nuestros espectadores. Sí, para resumir, una CDN es lo mismo que un servidor Edge, pero con menos ubicaciones físicas. Es casi lo mismo en el sentido de que las CDNs se utilizan principalmente para servir activos o implementar aplicaciones.

Uso de la Base de Datos y Conclusión

Short description:

Ya lo estamos utilizando con la aplicación cuando la implementas en Netlify y tienen centros de datos en todo el mundo. Principalmente se ha utilizado para servir activos estáticos. Por ahora, no tenemos preguntas. Si quieres continuar la discusión sobre Prisma o el acceso a la base de datos en el Edge con CloudFlare Workers y Prisma, puedes hacerlo en el chat espacial.

Ya lo estamos utilizando con la aplicación cuando la implementas en Netlify y tienen los centros de datos en todo el mundo. Principalmente se ha utilizado para servir, por ejemplo, activos estáticos. Puede que esté equivocado, siéntete libre de corregirme.

Sí. No, eso también es lo que entiendo. Pero siempre hay personas más inteligentes. Si quieres corregirnos, hazlo en el servidor de Discord.

Por ahora, no tenemos preguntas. Si tienes alguna pregunta, asegúrate de escribirla y para darte tiempo, le preguntaré a Alex sobre el Waitre. Alex, estábamos discutiendo. ¿Puedes darme tu mejor impresión del crecimiento de Henry Cavill? Mi garganta está un poco dolorida en este momento, así que solo puedo decir... Creo que eso es bastante bueno. Espero que sí. Suena adecuadamente molesto al nivel de Witcher. Por supuesto. Sí. Sí.

De acuerdo. Entonces, no hay preguntas en este momento. Veo que nadie está escribiendo en este momento, así que vamos a acortar un poco hasta el descanso. Los dejaré ir. Si quieres hablar con Alex, puedes hacerlo en el chat espacial. Alex se unirá allí ahora. Entonces, si quieres continuar la discusión sobre Prisma o el acceso a la base de datos en el Edge con Cloud Fireworkers y Prisma, puedes hacerlo en el chat espacial.

Entonces, Alex, muchas gracias por estar con nosotros aquí hoy y disfruta el resto de tu día. Gracias por tenerme también. Adiós. Sí. Adiós.

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

Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
Cargadores ESM: Mejorando la carga de módulos en Node.js
JSNation 2023JSNation 2023
22 min
Cargadores ESM: Mejorando la carga de módulos en Node.js
Top Content
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
Diagnostics de Node.js listos para usar
Node Congress 2022Node Congress 2022
34 min
Diagnostics de Node.js listos para usar
This talk covers various techniques for getting diagnostics information out of Node.js, including debugging with environment variables, handling warnings and deprecations, tracing uncaught exceptions and process exit, using the v8 inspector and dev tools, and generating diagnostic reports. The speaker also mentions areas for improvement in Node.js diagnostics and provides resources for learning and contributing. Additionally, the responsibilities of the Technical Steering Committee in the TS community are discussed.
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.
El Estado de Node.js 2025
JSNation 2025JSNation 2025
30 min
El Estado de Node.js 2025
The speaker covers a wide range of topics related to Node.js, including its resilience, popularity, and significance in the tech ecosystem. They discuss Node.js version support, organization activity, development updates, enhancements, and security updates. Node.js relies heavily on volunteers for governance and contribution. The speaker introduces an application server for Node.js enabling PHP integration. Insights are shared on Node.js downloads, infrastructure challenges, software maintenance, and the importance of update schedules for security.

Workshops on related topic

Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
Workshop
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura
Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio
Construir y Desplegar un Backend Con Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Construir y Desplegar un Backend Con Fastify & Platformatic
Top Content
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente GraphQL y REST APIs con un esfuerzo mínimo. La mejor parte es que también te permite desatar todo el potencial de Node.js y Fastify siempre que lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y plugins adicionales. En la masterclass, cubriremos tanto nuestros módulos de Open Source como nuestra oferta en la Nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/). 
En esta masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la Platformatic Cloud.
Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
Workshop
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
0 a Auth en una Hora Usando NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 a Auth en una Hora Usando NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend de Node.JS + frontend de React) para autenticar usuarios con OAuth (inicio de sesión social) y contraseñas de un solo uso (correo electrónico), incluyendo:- Autenticación de usuario - Administrar interacciones de usuario, devolver JWT de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión para solicitudes de cliente posteriores, validar / actualizar sesiones
Al final del masterclass, también tocaremos otro enfoque para la autenticación de código utilizando Flujos Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.
Tabla de contenidos- Una breve introducción a los conceptos básicos de autenticación- Codificación- Por qué importa la autenticación sin contraseña
Requisitos previos- IDE de tu elección- Node 18 o superior
Escalando tu base de datos con ReadySet
Node Congress 2023Node Congress 2023
33 min
Escalando tu base de datos con ReadySet
WorkshopFree
Aspen Smith
Nick Marino
2 authors
La base de datos puede ser una de las partes más difíciles de escalar en una aplicación web. Muchos proyectos terminan utilizando sistemas de caché ad-hoc que son complejos, propensos a errores y costosos de construir. ¿Qué pasaría si pudieras implementar un sistema de caché listo para usar para mejorar el rendimiento y la optimización de consultas sin necesidad de realizar cambios en el código de tu aplicación?
Únete a los desarrolladores Aspen Smith y Nick Marino para ver cómo puedes cambiar una línea de configuración en tu aplicación y utilizar ReadySet para escalar el rendimiento de tus consultas en órdenes de magnitud hoy mismo.