Persistencia de Remix con DynamoDB

Rate this content
Bookmark

Remix es el mejor marco de trabajo de React para trabajar con la segunda característica más importante de la web: los formularios. (Los anclajes son más importantes). Pero construir formularios es la parte divertida: la parte complicada es lo que sucede cuando un consumidor web envía un formulario. No la lógica de validación del lado del cliente, sino la lógica básica del backend para crear, leer, actualizar, destruir y listar registros en una base de datos duradera (CRUDL). Las bases de datos pueden ser intimidantes. ¿Cuál elegir? ¿Cuáles son los compromisos? ¿Cómo modelar los datos para consultas rápidas? En esta charla, aprenderemos sobre el increíblemente poderoso AWS DynamoDB. Dynamo promete una latencia de un solo dígito de milisegundos sin importar cuántos datos tenga almacenados, la escalabilidad es completamente transparente y viene con un generoso nivel gratuito. Dynamo es un nivel diferente de base de datos, pero no tiene por qué ser intimidante.

This talk has been presented at Remix Conf Europe 2022, check out the latest edition of this React Conference.

FAQ

DynamoDB es una base de datos de clave-valor de baja latencia y de columna ancha, administrada completamente por AWS, lo que significa que no requiere parches ni actualizaciones de software. Es relevante para aplicaciones web dinámicas porque permite almacenar datos de manera segura y rápida, esencial para funciones como la autenticación y personalización.

Las principales ventajas de usar DynamoDB incluyen su capacidad de escalar a cero, lo que significa que solo pagas por lo que usas, su integración con AWS Lambda para consultas de baja latencia, y su manejo de grandes volúmenes de datos con un rendimiento constante. Además, es una base de datos completamente administrada, eliminando la necesidad de manejar parches o actualizaciones de software.

A diferencia de las bases de datos relacionales que usan esquemas y estructuras fijas, DynamoDB utiliza un modelo clave-valor que permite un almacenamiento flexible de JSON. Esto la hace más adecuada para aplicaciones que requieren gran escalabilidad y rendimiento optimizado, sin los problemas de conexión y latencia que a menudo acompañan las bases de datos relacionales.

DynamoDB puede ser muy económico, especialmente para nuevos usuarios o aplicaciones con requisitos de almacenamiento moderados. Ofrece una generosa capa gratuita que incluye 25 GB de almacenamiento y 200 millones de solicitudes por mes. Los costos pueden aumentar con el uso, pero generalmente se considera una opción rentable para muchas aplicaciones.

DynamoDB presenta desafíos como su curva de aprendizaje, especialmente en cuanto a su modelado de datos de clave-valor y su sintaxis de consulta única. Estos desafíos pueden superarse con una adecuada capacitación y recursos, como el libro de Alex DeBrie recomendado para profundizar en su uso y mejores prácticas.

DynamoDB funciona excepcionalmente bien con AWS Lambda, ofreciendo respuestas de consulta en milisegundos de un solo dígito. Esta integración permite a las funciones de Lambda ejecutarse de manera eficiente y costeable, ideal para aplicaciones que necesitan escalabilidad y un rendimiento óptimo.

Brian LeRoux
Brian LeRoux
41 min
18 Nov, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

DynamoDB es una base de datos de clave-valor de próxima generación que tiene baja latencia, es escalable y fácil de usar. Ofrece ventajas como opciones de desarrollo local, un nivel gratuito generoso y un rendimiento rápido. Se desmienten los conceptos erróneos comunes sobre DynamoDB de ser costoso o difícil de aprender. La charla cubre temas como modelado básico, separación de preocupaciones, trabajar con DynamoDB en Remix y construir un cliente de DynamoDB. En general, DynamoDB es una base de datos potente que se integra bien con Remix y proporciona patrones eficientes de acceso a datos.
Available in English: Remix Persistence With DynamoDB

1. Introducción a DynamoDB

Short description:

Hoy voy a hablar sobre la persistencia con DynamoDB, una base de datos de clave-valor de próxima generación. DynamoDB es una base de datos de clave-valor de baja latencia y de columna ancha que permite consultar por clave y almacenar valores como JSON. Es una base de datos completamente administrada sin necesidad de parches o actualizaciones de software. Además, DynamoDB se escala a cero, lo que significa que solo pagas por lo que usas.

Hola a todos, es un verdadero placer estar aquí, y estoy emocionado de ser parte de este movimiento remix contigo. Y hoy voy a hablarles sobre la persistencia con DynamoDB. Mi nombre es Brian LaRue, pueden encontrarme en varias redes sociales, así que todavía existo bajo ese nombre, y trabajo para Begin.com.

Entonces, antes de hablar de Dynamo, voy a hablar sobre la persistencia en general. La persistencia es un requisito muy importante para aplicaciones web dinámicas. Es una complejidad esencial para cualquier cosa que sea personalizada, así que cualquier cosa que tenga un paso de autenticación y estemos guardando algunos datos sobre una persona y necesitamos hacerlo de manera segura y rápida, vamos a necesitar una base de datos. Y no se puede hacer esto con un sistema de archivos plano. No quieres hacer esto con un sistema de archivos plano porque te encontrarás con problemas de concurrencia.

Entonces, tradicionalmente, las personas elegirían una base de datos relacional, y DynamoDB es una especie de base de datos de próxima generación que se basa en clave-valor. Y así, la mayoría de las organizaciones en estos días han optado por Amazon para la infraestructura, y Dynamo es la base de datos de clave-valor insignia para AWS. Entonces, si estás usando AWS, probablemente te gustaría aprender más sobre Dynamo.

Entonces, ¿qué es exactamente Dynamo? Es una base de datos de clave-valor de baja latencia y de columna ancha que es una forma muy elegante de decir que consultamos por clave, y almacenamos valores como JSON, y podemos tener diferentes formas de diferentes columnas en cada fila. Entonces, para cada fila en mi base de datos, puedo tener diferentes atributos de elementos y todo está bien. Dynamo es una base de datos completamente administrada, y esto significa que no hay parches. No hay software para actualizar, y eso es realmente bueno. Y también es realmente bueno que se escala a cero, lo que es una forma elegante de decir que solo pagas por lo que usas, y no pagas por nada más. Entonces, es una utilización del 100%. No estás manteniendo un gran grupo de servidores solo para satisfacer la demanda que puedes tener o no. Solo usas lo que pagas, y días felices. Sigues adelante desde ahí.

2. Ventajas de DynamoDB

Short description:

DynamoDB es la base de datos administrada insignia del pionero de la nube, utilizada por Amazon ellos mismos. Ofrece excelentes opciones de desarrollo local, un gran nivel gratuito y un rendimiento rápido independientemente del tamaño de los datos. Con solo unas pocas llamadas clave a la API y una excelente compatibilidad con AWS Lambda, DynamoDB se destaca de las bases de datos relacionales tradicionales en cuanto a velocidad e integración.

Entonces, la siguiente gran pregunta que a menudo me hacen es, bueno, ¿por qué elegiría DynamoDB entre las millones de opciones de database que tenemos disponibles? Y la clave para mí es que es la base de datos administrada insignia del pionero de la cloud, y ellos mismos la utilizan en Amazon para respaldar el negocio minorista de Amazon.com. Entonces, es simplemente una buena elección. Desde ese punto de vista, tiene excelentes opciones de desarrollo local. Tiene un gran nivel gratuito. Es rápido sin importar cuántos data almacenes, lo cual es como un sueño de ciencia ficción para las bases de datos. Solía ser que al agregar servidores, se agregaba latencia, y definitivamente se agregaban problemas, lo cual no experimentamos con una base de datos administrada. Es muy pequeña, por lo que no hay mucho API que aprender. Realmente solo hay alrededor de seis llamadas clave a la API para trabajar con Dynamo, lo cual es realmente genial. Tiene un buen SDK para casi todos los runtime que puedas imaginar. Y la característica sorprendente, mi característica favorita, es que funciona muy bien con AWS Lambda, con una latencia de un solo dígito de milisegundos para consultas, sin importar cuántos data estés almacenando. Por lo general, se menciona esto, y es realmente importante porque muchas bases de datos son bastante lentas hoy en día, especialmente las bases de datos relacionales tradicionales. Se pueden acelerar, pero nunca serán tan rápidas. Y simplemente no funcionan tan bien con Lambda por diversas razones.

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

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
WebAssembly enables optimizing JavaScript performance for different environments by deploying the JavaScript engine as a portable WebAssembly module. By making JavaScript on WebAssembly fast, instances can be created for each request, reducing latency and security risks. Initialization and runtime phases can be improved with tools like Wiser and snapshotting, resulting in faster startup times. Optimizing JavaScript performance in WebAssembly can be achieved through techniques like ahead-of-time compilation and inline caching. WebAssembly usage is growing outside the web, offering benefits like isolation and portability. Build sizes and snapshotting in WebAssembly depend on the application, and more information can be found on the Mozilla Hacks website and Bike Reliance site.

Workshops on related topic

Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
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
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
Construye y lanza un blog personal usando Remix y Vercel
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construye y lanza un blog personal usando Remix y Vercel
Featured Workshop
Robert Pop
Robert Pop
En este masterclass aprenderemos cómo construir un blog personal desde cero usando Remix, TailwindCSS. El blog será alojado en Vercel y todo el contenido será servido dinámicamente desde un repositorio separado en GitHub. Utilizaremos HTTP Caching para las publicaciones del blog.
Lo que queremos lograr al final del masterclass es tener una lista de nuestras publicaciones de blog mostradas en la versión desplegada del sitio web, la capacidad de filtrarlas y leerlas individualmente.
Tabla de contenidos:- Configurar un proyecto de Remix con una pila predefinida- Instalar dependencias adicionales- Leer contenido desde GitHub- Mostrar contenido desde GitHub- Analizar el contenido y cargarlo en nuestra aplicación usando mdx-bundler- Crear una página separada para las publicaciones de blog para mostrarlas de forma independiente- Agregar filtros a la lista inicial de publicaciones de blog