Convex: Simplifying State Management

Rate this content
Bookmark

Si sufres de: Escribir SQL para expresar la lógica de tu producto, tratar de recordar DSLs de autorización esotéricos, luchar con la caché de tu frontend, luchar con la caché de tu backend, despliegues lentos de backend, estado de UI inconsistente o desactualizado, falta de seguridad de tipos de extremo a extremo, falta de garantías transaccionales, bajo rendimiento de escritura en la base de datos, inicios en frío de la base de datos o rendimiento de lectura de la base de datos impredecible, entonces sintoniza esta charla y déjame mostrarte la luz al final del túnel.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Tom Redman
Tom Redman
28 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Mi nombre es Tom, el jefe de experiencia del desarrollador en Convex. Convex es un motor de sincronización escrito en Rust que incluye base de datos, almacenamiento de archivos y búsqueda de texto completo. Puede ser autoalojado y te permite escribir código Convex junto con tu otro código. Se ejecuta en un aislamiento V8 en la misma máquina que tus datos, haciéndolo rápido. Convex utiliza web sockets para la interacción y ofrece optimizaciones como actualizaciones optimistas. Es ampliamente utilizado y puede manejar datos en tiempo real. Convex tiene como objetivo eliminar las cargas de desarrollo y se enfoca en la escalabilidad. Ofrece concurrencia fluida y reduce la fricción en el desarrollo. Convex for Startups es un programa que ofrece beneficios como acceso gratuito y tiene como objetivo atraer aplicaciones interesantes.

1. Introduction to Convex

Short description:

Mi nombre es Tom. Soy el jefe de experiencia de desarrollador en Convex. Me encontré con Convex hace unos nueve meses y cambió mi vida. Ya no tengo que tomar tantas decisiones cada vez que quiero iniciar algo. Quería que más desarrolladores supieran que esto existe.

Mi nombre es Tom. Soy el jefe de experiencia de desarrollador en Convex. Esta es una especie de charla rápida. No hay mucho tiempo, así que voy a intentar cubrir al menos algo que encontré súper interesante. Personalmente, me encontré con Convex hace unos nueve meses. Y de alguna manera cambió mi vida de muchas maneras diferentes.

Uno, trabajo allí ahora. Pero dos, pasé muchos años simplemente construyendo. Me encanta construir. Construí muchas cosas arriba y abajo de la pila. Probé diferentes tecnologías.

Convex fue algo que encontré, y cuanto más profundizaba en ello, más aliviado me sentía de ya no tener que tomar tantas decisiones que me encuentro teniendo que tomar cada vez que quiero iniciar algo. Y estaba emocionado, y luego estaba... No estoy seguro de cuál era la emoción. Quería que más desarrolladores supieran que esto simplemente existe. Realmente era algo. Fue toda una experiencia para mí.

Y eso me llevó a investigar la empresa, contactar a los fundadores. Tuvimos un montón de conversaciones, y finalmente, estoy aquí ahora hablando contigo. Así que supongo que de alguna manera estoy cumpliendo esa visión que tenía.

2. Overview of Convex

Short description:

Entonces, Convex es un motor de sincronización que incluye base de datos, almacenamiento de archivos y búsqueda de texto completo. Está escrito en Rust y puede ser autoalojado. Escribes tu código de Convex junto con tu otro código, y se compila y despliega en tu instancia de Convex. Tu código se ejecuta en un aislamiento V8 en la misma máquina que tus datos, haciéndolo rápido y eliminando preocupaciones de caché. Tus datos o gestión de estado están conectados a tu despliegue de Convex a través de un web socket.

Entonces, Convex es tu amigable motor de sincronización del vecindario. Voy a acelerar un poco con las cosas técnicas aquí. Tenemos toneladas de publicaciones en el blog sobre cómo funciona todo. Las partes técnicas son súper, súper interesantes.

Convex en sí es un motor de sincronización que incluye base de datos, almacenamiento de archivos, incrustaciones de vectores... Otras cosas que me faltan. Búsqueda de texto completo. Está escrito desde cero en 200,000 líneas de Rust. Está alojado en nuestra plataforma, que viene con un panel de administración, soporte para miembros del equipo, y datos de uso. Pero también es de código abierto. Así que si lo eliges, puedes autoalojarlo.

Entonces, en general, la forma en que funciona es que escribes tu código de Convex justo al lado del resto de tu código. En este ejemplo que veremos hoy, es React y TypeScript. Tenemos clientes para un montón de diferentes lenguajes. Pero lo pones todo en el mismo... Ni siquiera... NX es increíble. Si viste esa charla, ellos hacen gestión de monorepos. En este caso, no necesitas eso.

Simplemente viven juntos en perfecta armonía. La diferencia es que el código en tu carpeta de Convex se compila cada vez que presionas guardar. Se compila. Es TypeScript. Se compila y luego se despliega en tu instancia de Convex, de la cual cada proyecto tiene al menos dos. Hay una instancia de desarrollo, y luego hay una instancia de producción, con más redundancia. Tu aplicación web típica funciona como de costumbre. Y luego la parte de Convex de ella es esta base de datos y literalmente tu código que ha sido enviado allí que se ejecuta en un aislamiento V8 en la misma máquina que tus datos, lo que lo hace increíblemente rápido y efectivamente te absuelve de cualquier preocupación de caché.

Así que cuando un cliente, como un navegador web, accede a tu sitio, todo lo normal sucede y luego cualquier cosa relacionada con Convex, así que tus datos o tu gestión de estado, y llegaremos a eso, está conectado a tu despliegue de Convex a través de un web socket. También increíblemente rápido. Estoy seguro de que puedo hacer que las diapositivas estén disponibles.

QnA