15 puntos por GN⁺ 2023-10-05 | 2 comentarios | Compartir por WhatsApp
  • Introducción interactiva a los Conflict-free Replicated Data Types (CRDTs)
    • Un tipo de estructura de datos que puede almacenarse en distintas computadoras (pares) y actualizarse de inmediato sin solicitudes de red ni confirmación con otros pares
  • Los CRDTs son excelentes para construir aplicaciones de colaboración avanzadas como Google Docs y Figma sin necesidad de sincronización mediante un servidor central
  • Existen dos tipos de CRDTs: basados en estado y basados en operaciones
    • Los CRDTs basados en estado transmiten todo el estado entre pares, y el nuevo estado se obtiene fusionando todos los estados
    • Los CRDTs basados en operaciones transmiten solo las acciones que realiza el usuario, y estas pueden usarse para calcular el nuevo estado
  • Este artículo se enfoca en los CRDTs basados en estado y explica cómo construir CRDTs primitivos, cómo componerlos en estructuras de datos más complejas y cómo crear un editor colaborativo de pixel art
  • Presenta el concepto de Last Write Wins Register (LWW Register), un tipo simple de CRDT que almacena un solo valor y usa marcas de tiempo para sobrescribir el valor actual con el último valor escrito
  • También presenta el concepto de Last Write Wins Map (LWW Map), un tipo más complejo de CRDT que almacena uno o más valores
  • Incluye un playground interactivo para ayudar a entender cómo funcionan los LWW Registers y los LWW Maps
  • El siguiente artículo se enfocará en construir un editor colaborativo de pixel art usando los conceptos explicados en este artículo

2 comentarios

 
cosine20 2023-10-06

Está bastante interesante. Tenía curiosidad por cómo están implementadas las apps que permiten colaboración en tiempo real, como Google Docs...

 
GN⁺ 2023-10-05
Opiniones de Hacker News
  • Un artículo muy elogiado como una excelente introducción a los Conflict-free Replicated Data Types (CRDTs) para desarrolladores, con ejemplos de código reales y explicaciones claras
  • Los CRDTs se usan en el desarrollo de productos y, aunque pueden ser difíciles de manejar, ofrecen ventajas como latencia cero y consistencia eventual
  • Los CRDTs permiten cachés distribuidos sin lógica de invalidación, lo que simplifica la gestión del caché y mejora el rendimiento
  • Los CRDTs permiten eliminar operaciones de escritura antiguas, lo que reduce la carga del sistema y hace posible la computación en el borde
  • Sin embargo, usar CRDTs presenta desafíos como la dificultad de la autorización basada en roles, la necesidad de cambiar a modelos de datos aditivos y problemas de depuración
  • Servicios como Liveblocks buscan simplificar el uso de los CRDTs, pero pueden resultar costosos para desarrolladores independientes
  • Los CRDTs se han usado en diversas aplicaciones, como gestores de campañas de TTRPG, bases de datos con sincronización automática y herramientas de cuadernos colaborativos
  • Los CRDTs se consideran muy útiles e interesantes para la gestión de datos, pero su importancia para aplicaciones centradas en el usuario sigue siendo debatible
  • Algunas personas sostienen que la principal ventaja de los CRDTs es la colaboración en tiempo real, algo que, según dicen, ya fue resuelto por soluciones centralizadas como Google Docs
  • Otras señalan que los CRDTs ofrecen beneficios como soporte multidispositivo y acceso sin conexión, aunque estas funciones también están disponibles en soluciones centralizadas
  • También hay preocupación sobre la durabilidad de los datos y el control del usuario con los CRDTs, ya que no es fácil actualizar el modelo de datos y otros pares pueden modificar la información
  • A pesar de este debate, el interés por los CRDTs continúa, y la investigación y el desarrollo en este campo siguen avanzando