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.

This talk has been presented at JSNation Live 2020, check out the latest edition of this JavaScript Conference.

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
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
Futuro de los Frameworks Frontend Charla Informal
React Summit 2024React Summit 2024
28 min
Futuro de los Frameworks Frontend Charla Informal
Fred K. Schott
Minko Gechev
Ryan Carniato
Daniel Afonso
Aakansha Doshi
Tim Neutkens
6 authors
Signals are being adopted by popular frameworks, enabling code reuse and improved tooling. While merging between frameworks is unlikely, they are learning from each other and adopting shared practices. It is important to embrace the diversity of frameworks and libraries. Instead of merging, focus on standardizing the principles behind frameworks. Consider tradeoffs and benefits when choosing a framework, and explore different technologies to learn new ideas.
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
The Talk discusses the use of TypeScript and SQL together in software development. It explores different approaches, such as using an ORM like TypeORM or a schema generator like pg2ts. Query builders like connects JS and tools like PGTyped are also discussed. The benefits and trade-offs of using TypeScript and SQL are highlighted, emphasizing the importance of finding a middle ground approach.
Nunca usaría un ORM
JSNation 2023JSNation 2023
29 min
Nunca usaría un ORM
Top Content
Welcome to a talk on Object-Relational Mapping (ORM) and its potential pitfalls. The speaker discusses issues with modals and the MVC pattern, as well as the benefits of structuring code around system features instead. They introduce PlatformaticDB as a solution for easy backend development, showcasing its deployment and testing capabilities. The talk also covers integrating with Next.js, writing custom SQL queries, and the speaker's plans for future support and database compatibility.
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
Node Congress 2022Node Congress 2022
31 min
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
This Talk discusses database access on the edge with CloudFlare workers and the challenges of serverless platforms. It explores solutions for database access, including CloudFlare-specific solutions and using Prisma data proxy. The Prisma toolkit and demo are showcased, demonstrating how to convert an application to use a database. The process of setting up Prisma Data Platform and deploying the application to CloudFlare workers is explained. The Talk concludes with insights on database usage and the differences between serverless, CDN, and the Edge.
Guía para desarrolladores frontend sobre Web3
React Summit 2022React Summit 2022
22 min
Guía para desarrolladores frontend sobre Web3
This talk covers an introduction to Web 3 and smart contracts, including deployment and bytecode compilation. It also discusses interacting with blockchain wallets, using RPC endpoints and block explorers, and accessing smart contract data. The talk emphasizes the use of ABIs and JavaScript libraries like ethers for interacting with smart contracts. It mentions the shift in mindset from HTTP requests to using ABI code and libraries for front-end development in Web 3. The talk concludes by mentioning Web3UI and tools like PolygonScan and Etherscan for building on the blockchain.

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!