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.
Comments