Está formalmente probado que es el modelo de consistencia más fuerte que puedes tener para un sistema AP como este. Pero el resultado es básicamente para el usuario, es simplemente resistente a entrar y salir de la conectividad de red y las aplicaciones simplemente siguen funcionando.
Ahora, con eso, mencioné algo de esta complejidad de los sistemas distribuidos que obtienes con una especie de capa de sincronización como esta. Esta es una demostración que simplemente te muestra, por ejemplo, cómo, además de mantener la consistencia de los data, por lo que siempre terminas en el mismo estado, también preservamos la invariancia relacional. Así que, por ejemplo, cosas como la integridad referencial, por lo que no obtienes inconsistencias en tus data resultantes de este tipo de desafíos de concurrencia. Así que hay un ejemplo clásico donde esto es donde tienes jugadores que pueden inscribirse en torneos, por lo que básicamente puedes inscribir un torneo, y como ves, se sincroniza entre los dos dispositivos. Ahora, ¿qué sucede, por ejemplo, si desconectamos al usuario uno, inscribimos a un jugador en este segundo torneo aquí, mientras que concurrentemente este usuario elimina el torneo, básicamente tienes que tener una forma de preservar la integridad referencial. Y para esta demostración, usamos compensaciones técnicas, lo que significa que si eso sucede, el torneo se recrea. Así que básicamente hay un montón de cosas inteligentes incorporadas en la capa de sincronización, que está diseñada para mantener el tipo de garantías de nivel de database que tendrías codificando contra un sistema, como decir Prisma en la parte trasera, o simplemente codificando contra cualquier sistema de database, pero básicamente estamos permitiendo que funcione incluso cuando estás haciendo estas escrituras locales, incluso en un modo offline.
Y luego tal vez solo muestre una última cosa. Así que es replicación activa-activa, ¿verdad? Así hemos estado mostrando básicamente interactuando con el sistema a través de estos widgets incrustados en una página web. Básicamente, abriré un terminal aquí. Y Windows v. Windows. Así que lo que tenemos es básicamente el mismo tipo de mini demostración aquí, solo incrustada en la página. De nuevo, esto es todo simplemente código en vivo. Puedes ver si agarro aquí, lo que tenemos es algunas credenciales PSQL con alcance de usuario. Así que puedo simplemente conectarme directamente a la base de datos Postgres que está respaldando el sistema. Vamos a tener un vistazo aquí. Hay algunas de estas tablas que simplemente respaldaban las demostraciones, jugadores y torneos, etc. Y luego si vas aquí, por ejemplo, aquí hay un comando que puedo introducir en Postgres, que simplemente actualizará el deslizador a una posición aleatoria. Y como ves, si lo golpeo, puedo simplemente seguir moviendo el deslizador. Así que hay algunas cosas realmente interesantes aquí. Una es que puedes tener tu estado de UE en la database. Así que tienes una gestión de estado unificado entre tus data y tu estado de UE, lo cual es en realidad un cambio bastante profundo en términos de simplificar la forma en que haces el desarrollo de aplicaciones. Y también, lo que significa que no obtienes límites entre esos diferentes modelos entre el estado del cliente y los data persistidos. También, así que es bidireccional. Así que, por ejemplo, acabamos de ver básicamente actualizando un registro en la database y cómo se refleja aquí. Igualmente, si ejecuto este comando para básicamente ver el valor del deslizador, ves que a medida que muevo el deslizador
Comments