Construyendo un backend serverless nativo de GraphQL con Fauna

Rate this content
Bookmark

¡Bienvenido a Fauna! Este masterclass ayuda a los desarrolladores de GraphQL a construir aplicaciones de alto rendimiento con Fauna que se escalan a cualquier tamaño de base de usuarios. Comienzas con lo básico, utilizando solo el playground de GraphQL en el panel de Fauna, luego construyes una aplicación completa de pila completa con Next.js, agregando funcionalidad a medida que avanzas.

En la primera sección, Comenzando con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.

En la segunda sección, Construyendo con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.

FAQ

Fauna es una base de datos que se integra de forma nativa con las APIs de GraphQL, permitiendo manejar datos sin preocuparse por la infraestructura de servidores. En serverless, Fauna proporciona escalabilidad automática, alta disponibilidad, seguridad y un modelo de pago por uso, ideal para aplicaciones que requieren mínima gestión de infraestructura y costos basados en el acceso real.

Fauna permite la implementación de autenticación segura mediante el uso de funciones definidas por el usuario (UDF) y roles específicos que controlan el acceso a los datos basados en atributos del usuario. Además, Fauna gestiona la encriptación y protección de datos, como las contraseñas, asegurando que no se expongan ni almacenen en texto plano.

El modelo serverless de Fauna ofrece beneficios como la ausencia de gestión de infraestructura, escalabilidad automática, alta disponibilidad y seguridad robusta. Además, el modelo de pago por valor asegura que solo se paga por los recursos efectivamente utilizados, reduciendo los costos operativos.

En Fauna, los índices se utilizan para acceder y organizar datos de manera eficiente. Los usuarios pueden crear índices a través del dashboard de Fauna, especificando parámetros como el nombre del índice y las claves que determinan cómo se indexarán los datos. Esto facilita operaciones como búsquedas por atributos específicos.

Las funciones definidas por el usuario (UDF) en Fauna son implementaciones personalizadas que permiten encapsular lógica de negocio compleja directamente en la base de datos. Estas funciones se pueden utilizar para realizar operaciones personalizadas sobre los datos, como transformaciones o cálculos específicos, proporcionando así flexibilidad y potencia en la manipulación de datos.

Fauna se integra con frameworks frontend como React o Next.js mediante su API de GraphQL. Los desarrolladores pueden utilizar clientes GraphQL como Apollo para realizar consultas y mutaciones desde el frontend, gestionando la autenticación y la comunicación con la base de datos de manera segura y eficiente.

Rob Sutter
Rob Sutter
Shadid Haque
Shadid Haque
143 min
08 Dec, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

El masterclass de hoy se centró en el desarrollo serverless con Fauna. El masterclass cubrió temas como la construcción de un modelo cliente-serverless, la exploración de patrones de acceso a datos y la creación de una aplicación serverless. También se adentró en la autenticación de usuarios, la gestión de sesiones y la consulta de datos en el frontend. El masterclass destacó el poder de Fauna para la manipulación de datos y la flexibilidad que ofrece para construir aplicaciones con un control de acceso detallado.

1. Introducción a Serverless

Short description:

Gracias por unirse a nosotros. Hoy estaremos discutiendo sobre serverless y sus beneficios. Serverless elimina las preocupaciones de infraestructura, se escala automáticamente, garantiza alta disponibilidad y seguridad, y ofrece precios basados en el valor. Con serverless, puedes lograr cero tiempo de inactividad y cumplir con los requisitos de cumplimiento. Fauna, una base de datos serverless, proporciona transacciones sólidas, un rendimiento rápido y funciona bien con proveedores serverless de próxima generación. Es perfecto para desarrolladores front-end y ofrece una capa de API inteligente para una fácil integración. ¡Sumergámonos en el masterclass y aprendamos más sobre serverless!

Gracias por unirse a nosotros. Y ahora comencemos. Gracias por unirse a nosotros hoy. Hemos estado esperando para comenzar. Mi nombre es Rob. Soy una de las personas que los guiará a través del masterclass hoy. Quiero asegurarme de que todos estén en el servidor de Discord con nosotros. Voy a dejar el enlace a las diapositivas que usaré allí ahora, y también les daremos un enlace al masterclass más tarde. para que puedan volver y hacer esto, ya sea ustedes mismos, revisarlo ustedes mismos o llevarlo a sus equipos para que lo hagan y puedan seguirlo con ustedes.

Es de acceso público, pero estaremos aquí hoy para responder sus preguntas a medida que avanzamos y para hacerlo con ustedes.

Entonces, sin más preámbulos, voy a sumergirme directamente en el masterclass. Así que voy a pasarle la palabra a Rob para que les dé un pequeño recorrido por el espacio de descubrimiento. Y luego les dará algunos recursos, y luego Shadid los guiará a través del masterclass.

Cuando hablamos de serverless, hablamos de cuatro cosas clave. Estas son típicamente las mismas para todos los diferentes proveedores de serverless. Primero, no hay preocupaciones de infraestructura, por lo que no es necesario aprovisionar clústeres, servidores, parchear sistemas operativos, todas esas cosas. No tienes que preocuparte por eso. El proveedor se encarga de eso por ti. Y el acceso se proporciona simplemente a través de una API o como un servicio. En segundo lugar, se escala automáticamente, por lo que no es necesario pensar en la aprovisionamiento. Si no tienes usuarios, debería escalar a cero y no deberías pagar por ningún cálculo. Si tienes un aumento repentino de tráfico, debería escalar inmediatamente. Y no deberías tener que preocuparte por nada de eso. Y eso es lo que Fonda te ofrece para tu database, similar a lo que los proveedores de funciones como servicio te ofrecen para tu cálculo. En tercer lugar, debería ser altamente disponible y seguro. Y estas no son cosas de las que debas preocuparte. Correcto. Si hay una interrupción en algún lugar, el proveedor debería encargarse de mantenerte en funcionamiento y darte acceso a tus data. Y eso es lo que hacemos en Fonda. Y finalmente, debería pagarse por valor. Si no tienes acceso a tu database, no deberías pagar por el acceso durante ese período. Si almacenas, por ejemplo, 10 gigas, eso debería ser 10 veces más caro que almacenar un giga. Correcto. Y, por supuesto, tenemos un nivel gratuito que te ofrecemos para ayudarte con eso. Pero el principio es que solo pagas por el acceso real. No pagas por horas de ejecución de Fonda ni nada parecido. Si tienes mucho acceso y esas lecturas y escrituras aumentan, si no tienes acceso, se reduce a cero. Y ese concepto de escalar a cero es realmente importante en serverless. Algunos de los beneficios rápidos de usar un serverless como Fonda, realmente deberías poder lograr cero tiempo de inactividad, al menos en términos de tu database. Y esto te ayuda, como ayer, hubo un gran corte de energía del que todos saben. Si tu arquitectura estaba en una sola región y resultó ser la que se cayó, entonces adiós. Correcto. No hay forma de evitarlo. Pero Fonda se ha extendido por encima de estas regiones de tal manera que todo nuestro tráfico se transfirió a las otras regiones sin que tu aplicación tuviera que hacer nada. Hasta donde yo sé, no tuvimos ningún caso reportado de pérdida de data ayer. Así que esta es una gran ventaja para ti como desarrollador front-end que solo quiere almacenar y recuperar tus data. Todas estas cosas de las que no tienes que preocuparte. Esto también puede ayudarte a cumplir con los requisitos de cumplimiento. Esto es con grupos de regiones que ofrecemos, y no vamos a entrar en esto hoy porque el objetivo de hoy es construir. Puede ayudarte a reducir la latencia con Fonda porque tus usuarios acceden al punto final más cercano. Llegaremos a eso más tarde. Y es un aumento mínimo en el gasto tener toda esa redundancia. No estás ejecutando dos copias de tu database, ¿verdad? Estás ejecutando tu tráfico distribuido, que es el mismo costo total en lugar de duplicar o triplicar el costo de tenerlo en múltiples ubicaciones. También hacemos esto sin el problema que se ve en el lado de la consistencia eventual, porque Fauna tiene transacciones sólidas. Entonces, en lugar de encontrarte en una situación en la que tienes que verificar y asegurarte de tener los datos más recientes o usar bloqueos o algo así, simplemente escribes en un solo punto final y tus usuarios leen desde el punto final más cercano porque todo es una transacción sólida. Siempre tendrás los datos más recientes allí. Otras bases de datos serverless no te ofrecen esta garantía. Mencioné antes que también es rápido. Correcto. Estos son los números de performance reales. Puedes confirmarlos por ti mismo yendo a status.fauna.com. Estamos hablando de lecturas de un solo dígito en milisegundos y escrituras transaccionales consistentes en dos dígitos en milisegundos. Así que es realmente eficiente para tus aplicaciones, lo cual es importante cuando estás creando experiencias front-end. Correcto. Fauna funciona muy bien con proveedores de serverless de próxima generación. No vamos a entrar en la implementación hoy, pero si ya estás ejecutando tu aplicación en algo como CloudFlare pages o en Purcell, es perfecto y tenemos mucho material para ayudarte a integrarte con eso. Y nuevamente, esto es forms una capa de API inteligente sobre Fauna. El servicio GraphQL hace lo mismo por ti. Así que no tienes que preocuparte por dónde dirigir tu tráfico.

2. Construyendo un Modelo Cliente-Serverless con UDFs

Short description:

Aprenderás cómo construir un modelo cliente-serverless utilizando funciones definidas por el usuario (UDFs) y proteger el acceso a tus datos. Al final del masterclass, tendrás un modelo listo para producción para autenticar usuarios y ampliar las consultas de GraphQL. Te guiaremos desde no saber nada sobre Fauna hasta configurar un sistema listo para usar en solo unas pocas horas. Las UDFs te ayudan a separar la lógica de negocio del código front-end, lo que hace que las consultas y mutaciones sean más simples. También cubriremos el principio de privilegio mínimo, generación de tokens temporales para el inicio de sesión de usuario y autorización de acceso a recursos. El masterclass se enfoca en UDFs y acceso seguro a datos.

Acabas de acceder a graphql.db.fauna.com, como verás en el masterclass de hoy. Y nos encargamos de esa ruta por ti. Y lo que vas a construir hoy es un modelo que llamamos cliente serverless, donde no tienes toda esta otra infraestructura en el medio. Solo tienes tu front-end y te comunicas directamente con Fauna. Y eso es lo que gestionas. Y eso es en lo que te preocupas.

Este masterclass se deriva de algo que llamamos el Zen de Fauna. No vamos a cubrir todo esto hoy. El masterclass cubre principalmente los dos primeros. Siempre utilizando funciones definidas por el usuario, que son implementaciones de tus resolutores en tu esquema de GraphQL. Hablaremos sobre por qué. Y hay una parte de seguridad que te enseñaremos sobre cómo poner solo las claves en tu cliente que pueden iniciar sesión y nada más. Correcto. Así es como proteger el acceso a tus datos.

Entonces, cuando termines el masterclass de hoy, tendrás un modelo listo para producción para autenticar usuarios y ampliar tus consultas de GraphQL. Este masterclass se desarrolla de manera bastante fluida. ¿Cuál era el objetivo donde intentamos introducir solo una cosa nueva a la vez para ti? Pero aún así te llevamos desde no saber nada sobre Fauna hasta tener esta configuración lista para producción que puedes usar en las próximas tres horas. Entonces hablamos de que las funciones definidas por el usuario están en todas partes. Y la razón por la que hacemos esto es porque te permite sacar la lógica de negocio de tu código front-end y almacenarla en otro lugar. Correcto. Para consultas y mutaciones básicas en GraphQL, eso ya te lo proporcionará Fauna. Cuando creas un tipo, te damos un find type by ID, update type, read type, delete type. Lo siento, create type, delete type. Pero para casos más complejos como los que cubriremos en el masterclass, encapsularás esa lógica en una UDF. Puedes probarlo, pero también hace que tus consultas y mutaciones sean más simples. Y luego, por supuesto, hablamos de este principio de privilegio mínimo, el principio de privilegio mínimo, aquí con las claves de inicio de sesión. Te mostraremos cómo generar tokens temporales para los usuarios cuando inician sesión y cómo se utilizan esos tokens para autorizar el acceso a los recursos en tu base de datos. Quiero volver atrás rápidamente. La otra cosa importante a tener en cuenta es que se niega cualquier otro permiso. En el masterclass, puedes registrar un usuario, puedes iniciar sesión como usuario, pero no puedes hacer nada más. Porque tienes que enviar estas claves con tus clientes, ¿verdad? No hay forma de sacarlo a través del navegador de tus usuarios sin exponerlo. Quieres asegurarte de que una vez expuesto no pueda hacer nada más. Te mostraremos cómo hacerlo en este masterclass.

Watch more workshops on topic

Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Featured WorkshopFree
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced Conference 2022React Advanced Conference 2022
95 min
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
Featured WorkshopFree
Sabin Adams
Sabin Adams
En este masterclass, obtendrás una visión de primera mano de lo que es la seguridad de tipo de extremo a extremo y por qué es importante. Para lograr esto, construirás una API de GraphQL utilizando herramientas modernas y relevantes que serán consumidas por un cliente de React.
Prerrequisitos: - Node.js instalado en tu máquina (12.2.X / 14.X)- Se recomienda (pero no es obligatorio) utilizar VS Code para las tareas prácticas- Un IDE instalado (se recomienda VSCode)- (Bueno tener) *Un conocimiento básico de Node.js, React y TypeScript
GraphQL para Desarrolladores de React
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL para Desarrolladores de React
Featured Workshop
Roy Derks
Roy Derks
Hay muchas ventajas en utilizar GraphQL como fuente de datos para el desarrollo frontend, en comparación con las API REST. Nosotros, los desarrolladores, por ejemplo, necesitamos escribir mucho código imperativo para recuperar datos y mostrarlos en nuestras aplicaciones y manejar el estado. Con GraphQL, no solo puedes reducir la cantidad de código necesario para la obtención de datos y la gestión del estado, sino que también obtendrás una mayor flexibilidad, mejor rendimiento y, sobre todo, una mejor experiencia de desarrollo. En este masterclass aprenderás cómo GraphQL puede mejorar tu trabajo como desarrollador frontend y cómo manejar GraphQL en tu aplicación frontend de React.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y má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

De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Todos amamos GraphQL, pero puede ser desalentador poner en marcha un servidor y mantener tu código organizado, mantenible y testeable a largo plazo. ¡No más! Ven a ver cómo paso de un directorio vacío a una API GraphQL completamente desarrollada en cuestión de minutos. Además, verás lo fácil que es usar y crear directivas para limpiar aún más tu código. ¡Vas a amar aún más GraphQL una vez que hagas las cosas Redwood Easy!
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
¿Cuántas veces has implementado el mismo flujo en tu aplicación: verificar si los datos ya se han obtenido del servidor, si es así - renderizar los datos, si no - obtener estos datos y luego renderizarlos? Creo que lo he hecho más de diez veces yo mismo y he visto la pregunta sobre este flujo más de cincuenta veces. Desafortunadamente, nuestra biblioteca de gestión de estado predeterminada, Vuex, no proporciona ninguna solución para esto.Para la aplicación basada en GraphQL, había una alternativa para usar el cliente Apollo que proporcionaba herramientas para trabajar con la caché. Pero, ¿qué pasa si usas REST? Afortunadamente, ahora tenemos una alternativa de Vue a una biblioteca de react-query que proporciona una buena solución para trabajar con la caché del servidor. En esta charla, explicaré la distinción entre el estado de la aplicación local y la caché del servidor local y haré algo de codificación en vivo para mostrar cómo trabajar con este último.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
GraphQL Galaxy 2021GraphQL Galaxy 2021
33 min
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
El Guild ha lanzado recientemente Envelop - un nuevo y moderno Framework de Servidor GraphQL y sistema de plugins. En esta charla compartiré una breve descripción de Envelop y por qué probablemente deberías actualizar tu servidor GraphQL existente a él.
Aplicaciones sólidas de React y GraphQL para personas con prisa
GraphQL Galaxy 2022GraphQL Galaxy 2022
29 min
Aplicaciones sólidas de React y GraphQL para personas con prisa
En esta charla, veremos algunas de las opciones modernas para construir una aplicación full-stack de React y GraphQL con convenciones sólidas y cómo esto puede ser de enorme beneficio para ti y tu equipo. Nos enfocaremos específicamente en RedwoodJS, un framework full stack de React que a menudo se llama 'Ruby on Rails para React'.