Cuando los Mundos Chocan: Frontend vs Base de Datos

Rate this content
Bookmark

Los conflictos clásicos de diseño entre frontend y backend API se están convirtiendo en una molestia del pasado con las arquitecturas y herramientas serverless y Jamstack; los desarrolladores frontend están construyendo el stack completo. Pero esto plantea un nuevo problema: "¿Qué base de datos? ¿A quién le importa la base de datos?" Esta charla te ayudará con las preguntas que debes hacerle a la base de datos para tu próximo proyecto paralelo... y un lugar para comenzar tu viaje en los entresijos de las bases de datos.

FAQ

Tyler Hannon se encarga de community, soporte y éxito del cliente en Fauna, con una especialización en sistemas distribuidos y bases de datos.

Tyler habló sobre los cambios sociológicos en el mundo Fullstack, destacando la transición de servidores web adyacentes a bases de datos hacia un modelo con clientes y APIs globales, donde aspectos como la latencia y la consistencia son críticos.

ACID es un acrónimo que describe propiedades de transacciones en bases de datos: Atomicidad (todo o nada), Consistencia (mantenimiento del estado antes y después de la transacción), Aislamiento (invisibilidad de los estados intermedios) y Durabilidad (persistencia de los cambios post-transacción).

Cada proveedor tiene un enfoque distinto para manejar transacciones distribuidas, variando en cómo gestionan la replicación y consistencia de datos. Fauna, por ejemplo, utiliza un protocolo llamado CALVIN.

El protocolo CALVIN permite transacciones distribuidas rápidas para sistemas de bases de datos particionadas, asegurando que los datos se repliquen globalmente y mantengan su integridad y consistencia a través de múltiples regiones.

Tyler Hannon recomienda recursos como el CMU Database Group en YouTube, jepson.io, y las charlas de Kyle Kingsbury para profundizar en el funcionamiento y mejora de las bases de datos distribuidas.

Fauna proporciona una base de datos diseñada para ser sin servidor, enfocada en operaciones distribuidas y geográficamente redundantes, con un nivel gratuito disponible para los usuarios.

Tyler Hannan
Tyler Hannan
8 min
18 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Tyler Hannon analiza la importancia de elegir la base de datos correcta y explica el acrónimo ACID, que significa Atomicidad, Consistencia, Aislamiento y Durabilidad. También destaca los desafíos y beneficios de las transacciones distribuidas en aplicaciones Fullstack. Se mencionan varios enfoques para resolver los desafíos de las bases de datos, con un enfoque en FAUNA y su protocolo CALVIN. El objetivo es tener una base de datos rápida, confiable y serverless que cumpla con requisitos específicos.

1. Choosing the Right Database and Understanding ACID

Short description:

En esta charla, Tyler Hannon habla sobre la importancia de elegir la base de datos adecuada para tu aplicación. Presenta el acrónimo ACID, que significa Atomicidad, Consistencia, Aislamiento y Durabilidad. Tyler explica cada componente de ACID y su importancia en el mantenimiento de la integridad y confiabilidad de los datos. También destaca los desafíos y beneficios de las transacciones distribuidas en aplicaciones Fullstack modernas.

Excelente, muchas gracias por unirse hoy. Mi nombre es Tyler Hannon, y me encargo de community, soporte y éxito del cliente en Fauna. Mi experiencia está en sistemas distribuidos y bases de datos, por lo que un evento como JS Nation no es donde me siento más cómodo, pero de manera similar, mi experiencia es quizás donde tú no te sientes más cómodo. Y por eso titulé esta charla Cuando los Mundos Chocan.

Estamos en un cambio sociológico en el mundo Fullstack, donde un servidor web estaba adyacente a la database, a este nuevo mundo con clientes y APIs globales, donde la latencia y la consistencia en el borde son críticas. Pero desafortunadamente, todos estamos siendo bombardeados con publicidad. Así que cuando piensas en tu aplicación, la realidad es que solo queremos almacenar data en algún lugar, y queremos leer data de algún lugar. Y te garantizo que ya sea en un diagrama propio o en algún lugar dentro de la empresa para la que trabajas, hay una imagen de clip art que parece de los años 80 que representa una database con las notas, inserta el logo aquí. Y de eso quiero hablar hoy. ¿Qué es importante considerar al elegir qué logo insertar en ese diagrama de database?

Sabemos que la database a menudo es un cuello de botella, y al igual que muchos proveedores de database hablan ahora, también sabemos que las transacciones distribuidas son la solución, pero ¿distribuido, qué incluso es eso? ¿Y qué es esta cosa, ACID, de la que los proveedores de database siguen hablando? No está relacionado con lo que puedes encontrar aquí en la ciudad de la que soy, Ámsterdam. Es algo completamente diferente. De hecho, es un acrónimo y los acrónimos son extraños. Así que pensé que tomaría un poco de tiempo para explicar este acrónimo ACID contigo. Así que el primero es A, atómico o atomicidad. Básicamente, lo que está diciendo es que todos los cambios en los data se realizan como si fueran una sola operación. Es decir, todo sucede o no sucede. El ejemplo canónico para este tipo de flujo de trabajo son los servicios financieros. Si estoy debitando una cuenta esa operación de débito debe realizarse con éxito y la operación de crédito debe realizarse con éxito pero eso son muchas palabras. Así que me gusta pensar en la propiedad atómica como todo o nada. Hay C para consistente. Los data están en un estado consistente cuando comienza la transacción y cuando termina la transacción. Nuevamente, para usar nuestro ejemplo canónico, esto sería en una aplicación que transfiere fondos de un lugar a otro. Esta propiedad asegura que el valor total combinado esté en el mismo estado tanto antes como después de la transacción. Es válido antes, es válido después. I es para aislamiento, en el que el estado intermedio de una transacción es invisible para otros. Básicamente, las cosas suceden una a la vez o en paralelo, pero independientemente, el resultado es el mismo, y D es duradero, o durabilidad. Cuando la transacción está completa, los cambios se persisten y no se deshacen. Esto es probablemente lo que te resulta más familiar. Una vez que está completo, sobrevive a las interrupciones. Ahora, hay una amplia variedad de proveedores de database que hablan sobre transacciones distribuidas.

2. Choosing the Right Database Approach

Short description:

Existen varios enfoques para resolver los desafíos de las bases de datos, incluyendo Mongo, Dynamo, Firebase, Cassandra y FAUNA. El enfoque de FAUNA se basa en el protocolo de transacción distribuida y replicación de datos CALVIN. CALVIN garantiza la integridad de los datos y proporciona replicación global, permitiendo capacidades temporales e integración con múltiples proveedores de servicios en la nube. Para aquellos interesados en aprender más, recursos como CMU Database Group YouTube y jepson.io ofrecen información valiosa. En última instancia, el objetivo es tener una base de datos rápida, confiable y sin servidor que cumpla con tus requisitos específicos. Prueba FAUNA de forma gratuita y contáctanos si tienes alguna pregunta o necesitas soporte.

Hay muchos enfoques para resolver esto. Está el enfoque de Mongo y el enfoque de Dynamo, y lo que Firebase menciona, y lo que Cassandra menciona. También hablamos de esto en FAUNA. Nuestro enfoque, por lo que vale, se basa en una transacción distribuida y un protocolo de replicación de datos llamado CALVIN. Este es el título del artículo. CALVIN Fast Distributed Transactions for Partitioned Database Systems. Si tienes interés, te animo a que lo leas. Porque en última instancia, comprender cómo se cumplen tus requisitos es importante para asegurarte de que se cumplan por completo.

En resumen, es una transacción de varios documentos, y se ve un poco así. He construido una aplicación impresionante y atractiva en algún sabor de JavaScript utilizando los marcos y herramientas en los que confío, ya sea React, Next o cualquier otro. Mi aplicación tiene un fragmento de datos, y mi pequeño ayudante amigable en mi aplicación va a la base de datos y dice: `oye, aquí están los datos`. Y esos datos se registran en el registro de transacciones. Ese registro de transacciones se replica en otro sitio a nivel global. La replicación se confirma. Hay una serie de comprobaciones, cálculos y cosas confusas que entran en juego. Y luego se escriben los datos. A medida que esos datos se replican globalmente, porque están en el registro de transacciones, se devuelven a la aplicación como completos. Esto también permite algunas capacidades realmente geniales en cuanto a temporalidad, saber qué sucedió en qué momento. Y nos permite llegar a una variedad de proveedores de servicios en la nube en diversas regiones del mundo, algunas de las cuales están disponibles hoy y otras que estarán disponibles en el futuro.

Pero tu viaje apenas comienza. Te animo a que veas el CMU Database Group YouTube si te interesa cómo funcionan este tipo de cosas. A mirar jepson.io y las increíbles charlas que ha realizado Kyle Kingsbury y el trabajo que ha hecho en la mejora de las bases de datos distribuidas y en hacer que nuestra industria sea mejor. Pero en resumen, solo quieres guardar tus datos en algún lugar. Solo quieres leer lo que escribiste. Solo quieres que sea rápido en todas partes. Has descrito un sistema distribuido geográficamente redundante. Y como no quieres ser un operador, has descrito una base de datos diseñada para ser sin servidor. Solo quieres que funcione. Queremos que lo pruebes. Es gratis, hay un nivel gratuito. Es genial. También no dudes en contactarme. Estoy en Tyler Hannon. También nos puedes encontrar en fauna. Te estoy haciendo marketing. Siempre te están haciendo marketing. Ten en cuenta que tu viaje de comprensión sobre los fundamentos de las bases de datos distribuidas comienza por saber qué te importa. Muchas gracias y estaré en el chat si alguien tiene preguntas. ♪♪

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

Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
El creador de Vue js da una actualización sobre las nuevas características de la tecnología.
TypeScript y la Base de Datos: ¿Quién Posee los Tipos?
TypeScript Congress 2022TypeScript Congress 2022
27 min
TypeScript y la Base de Datos: ¿Quién Posee los Tipos?
Top Content
Todos amamos escribir tipos en TypeScript, pero a menudo nos encontramos teniendo que escribir tipos en otro lenguaje también: SQL. Esta charla presentará la historia de elige-tu-propia-aventura que enfrentas al combinar TypeScript y SQL y te guiará a través de los compromisos entre las diversas opciones. Combinados de manera deficiente, TypeScript y SQL pueden ser duplicativos y una fuente de dolores de cabeza, pero si se hacen bien, pueden complementarse entre sí al abordar las debilidades de cada uno.
Nunca usaría un ORM
JSNation 2023JSNation 2023
29 min
Nunca usaría un ORM
Top Content
¿Qué es un ORM? Una herramienta de Mapeo Objeto-Relacional (ORM) es una biblioteca para mapear una tabla SQL a una Clase. En la mayoría de los casos, los ORM obligan a los usuarios a estructurar su código para tener objetos Modelo que incluyen tanto el acceso a los datos como la lógica de negocio.
Había una vez, hice varios proyectos usando ORM siguiendo la creencia común de que simplificarían el desarrollo y mantenimiento de los proyectos. Estaba equivocado. Los ORM a menudo son un obstáculo a superar para la parte más compleja de un proyecto.
Como la siguiente parada de mi viaje, recomendé a las personas que usaran los lenguajes nativos de sus bases de datos, por ejemplo, SQL. Esto funciona muy bien en su mayor parte, pero crea una lucha bastante grande: hay mucho código de plantilla que escribir que puede ser bastante tedioso. Estaba equivocado, de nuevo.
Hoy les presento Platformatic DB.
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
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í.
Guía para desarrolladores frontend sobre Web3
React Summit 2022React Summit 2022
22 min
Guía para desarrolladores frontend sobre Web3
Hay mucho entusiasmo e interés en adentrarse en el espacio de Web3, y puede ser difícil manejar la sobrecarga de información y el énfasis en aprender nuevos lenguajes para trabajar en contratos inteligentes. Muchos desarrolladores en el espacio frontend se preguntan: '¿Cuánta de esta nueva información necesito para pasar a web3?' La verdad es que, como desarrollador de React, las habilidades que conozco son esenciales en web3. Vamos a agregar un poco de contexto sobre cómo aprovechar esas habilidades existentes para tener éxito en este nuevo espacio.
En esta charla, vamos a explorar cómo construir el contexto correcto y las tecnologías que debes entender para ayudarte a adentrarte en web3 como desarrollador frontend. Repasaremos paquetes populares como Ethers, que se pueden utilizar en aplicaciones de React para interactuar con billeteras y contratos inteligentes existentes. También exploraremos cómo puedes aprovechar tus habilidades en JavaScript para construir dApps de pila completa utilizando servicios gestionados como Moralis y Thirdweb.
Vamos a desmitificar algunos de los conceptos en web3 y aprovechar nuestras habilidades existentes para comenzar a construir.
Lleva la búsqueda basada en IA a tu aplicación web
JSNation 2023JSNation 2023
31 min
Lleva la búsqueda basada en IA a tu aplicación web
ChatGPT causó sensación en el mundo tecnológico. Todo el mundo habla de ello, desde tu CTO hasta tu peluquero (al menos el mío lo hace). Y hay muchas razones por las que todos deberíamos estar emocionados al respecto y muchas otras innovaciones de IA/ML.
Pero, ¿cómo las incorporas a tu pila tecnológica, a tu sitio web/backend, para trabajar con tus datos y proporcionar búsqueda impulsada por IA y aumento de datos?
Existe una nueva generación de bases de datos nativas de IA, que utilizan modelos de aprendizaje profundo para encontrar respuestas a consultas en lenguaje natural. Estamos hablando de la capacidad de buscar a través de texto, imágenes, videos, ADN o cualquier dato no estructurado, todo con una sola consulta.
La regla general es: si hay un modelo de ML, podemos buscar a través de él.
Únete a mí para aprender sobre los bloques fundamentales (LLMs y vector embeddings, Bases de datos vectoriales), cómo interactúan todos ellos y, lo más importante, cómo puedes construir algo tú mismo con tecnología de código abierto.
Y, por supuesto!!! Habrá una demostración de codificación en vivo, donde te guiaré a través de la experiencia de construir una búsqueda basada en IA, con Weaviate, una base de datos vectorial de código abierto, y agregarla a una aplicación. Ahora la pregunta... ¿deberíamos hacer esto en Angular, React, Vue o simplemente JS puro? ;)
#QueLosDiosesDeLaDemoEsténConNosotros

Workshops on related topic

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
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
WorkshopFree
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
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.
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
Node Congress 2022Node Congress 2022
53 min
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
WorkshopFree
Neil Manvar
Neil Manvar
Repasaremos la configuración de Sentry paso a paso para obtener visibilidad en nuestro frontend y backend. Una vez integrado, rastrearemos y solucionaremos errores y transacciones que se muestren en Sentry desde nuestros servicios para comprender por qué/dónde/cómo ocurrieron errores y ralentizaciones en nuestro código de aplicación.
Crear una aplicación React Native de pila completa con Oracle 23ai
React Summit 2024React Summit 2024
37 min
Crear una aplicación React Native de pila completa con Oracle 23ai
WorkshopFree
Doug Drechsel
Doug Drechsel
En este masterclass, configurarás un entorno de pila completa local y crearás una aplicación móvil React Native que se ejecuta en esa pila.
Agenda:- Instalar el contenedor Docker de Oracle 23ai- Construir y ejecutar Parse Server con el nuevo adaptador de almacenamiento de Oracle- Construir y ejecutar una aplicación móvil React Native de Walking History en la pila
Walking History es una aplicación React Native que te permite caminar por la ciudad de Nueva York (o simularlo en un emulador de dispositivos) y te muestra la atracción o punto de interés más cercano.
Construyendo una aplicación en tiempo real con Remix y Supabase
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construyendo una aplicación en tiempo real con Remix y Supabase
Workshop
Jon Meyers
Jon Meyers
Supabase y Remix hacen que sea fácil construir aplicaciones fullstack. En este masterclass, vamos a aprender cómo usar Supabase para implementar autenticación y autorización en una aplicación en tiempo real con Remix. Únete a Jon Meyers mientras construye esta aplicación desde cero y demuestra cómo puedes aprovechar el poder de las bases de datos relacionales!