La sincronización de datos de usuario en la nube no consiste solo en subir y descargar. Debe proteger el contenido privado durante la transferencia, mantener bajos los costos de almacenamiento, secuenciar las escrituras desde varios dispositivos, comprender distintas estructuras de datos, pedir confirmación antes de realizar eliminaciones peligrosas y conservar una vía de recuperación cuando una decisión resulta equivocada.
Orkas trata la sincronización en la nube como un límite de responsabilidad del producto, no como una utilidad en segundo plano. Las conversaciones, los agentes, las habilidades, el estado de las tareas, los archivos de conocimiento y la configuración deben poder trasladarse entre dispositivos manteniendo una cadena de responsabilidad clara: el dispositivo prepara el contenido, el almacenamiento de objetos guarda los bytes y el servidor controla el índice autoritativo.
El marco que presentamos a continuación es el que usamos para analizar el sistema: flujo de contenido cifrado, almacenamiento direccionado por contenido, bloqueo de sincronización por cuenta, confirmación de cambios a cargo del servidor, reglas de sincronización deterministas, gestión de conflictos asistida por modelos, confirmación de eliminación, papelera y marcadores de recuperación.
El contrato de sincronización
Cada ciclo de sincronización responde a cuatro preguntas sobre el producto: ¿qué contenido puede trasladarse, cómo se protege, quién tiene permiso para publicar un nuevo índice en la nube y cómo puede el usuario recuperar los datos si la sincronización tomó una decisión equivocada?
El recorrido del contenido cifrado
Los datos del usuario se preparan en el dispositivo antes de llegar al almacenamiento. El motor de sincronización normaliza el conjunto de datos candidatos, calcula la identidad del contenido, cifra las cargas de datos, las sube mediante credenciales de corta duración y verifica los bytes descargados antes de volver a escribirlos en el dispositivo.
Almacenamiento e índice
Orkas separa los bytes almacenados del índice en la nube. Los objetos de contenido contienen los datos cifrados. El índice registra qué elementos lógicos de datos deberían existir, la identidad de su contenido, los contadores de versión, el tamaño almacenado, la revisión en la nube y el estado de los marcadores de eliminación. El dispositivo también conserva un estado de referencia del último ciclo completado correctamente para poder distinguir el estado anterior de las nuevas modificaciones.
Un ciclo de sincronización
Un ciclo comienza con un costo bajo y solo aplica controles estrictos cuando hay trabajo real que hacer. Orkas primero comprueba si algo ha cambiado, después obtiene el bloqueo de sincronización de la cuenta, vuelve a calcular los cambios mientras mantiene ese bloqueo, transfiere el contenido, solicita al servidor que confirme las operaciones del índice y, por último, actualiza el estado de referencia del dispositivo.
Bloqueo de sincronización y confirmación de cambios
El bloqueo de sincronización y la comprobación de la confirmación de cambios resuelven problemas distintos. El bloqueo de sincronización reduce el trabajo simultáneo desperdiciado entre dispositivos. El bloqueo del servidor secuencia las escrituras del índice. La comprobación de la revisión esperada en la nube impide que una lectura antigua se convierta en el siguiente estado autoritativo. Las comprobaciones de cuota y esquema se ejecutan en el mismo proceso de confirmación de cambios controlado por el servidor.
Reglas antes de los conflictos
La mayoría de las decisiones de sincronización no son conflictos. El dispositivo compara el estado de referencia, los datos actuales del dispositivo y el índice en la nube. Si solo cambió la nube, descarga. Si solo cambió el dispositivo, sube. Si ambos cambiaron, decide según el tipo de contenido. Si algo desapareció, entra en el proceso de eliminación segura en lugar de borrar los datos inmediatamente.
Gestión de conflictos
Cuando ambos lados realmente han cambiado, Orkas no lo reduce todo a que prevalezca la última escritura. Los registros a los que se añaden entradas al final pueden combinarse incorporando las entradas que faltan. Las listas pueden combinarse según la identidad estable de cada registro. El contenido JSON estructurado puede usar contadores de versión y marcas de tiempo. Con Markdown y los archivos binarios se actúa con cautela: si el sistema no puede demostrar que la combinación no causa pérdidas, conserva una copia completa de la versión descartada.
En los conflictos ambiguos de texto o contenido estructurado, el producto puede agrupar las versiones pertinentes para gestionarlas con la ayuda de un modelo. El modelo puede explicar el conflicto, redactar una versión combinada o ayudar al usuario a elegir. No es la única medida de protección: la validación determinista, los originales archivados y las opciones de recuperación visibles para el usuario siguen formando parte del proceso.
Confirmación de eliminación
Las eliminaciones se tratan como transiciones de estado. Una eliminación remota se convierte en un marcador de eliminación. Una eliminación en el dispositivo se convierte en una operación candidata. Orkas comprueba las escrituras recientes, vigila las oleadas de eliminaciones masivas y pausa el ciclo para pedir confirmación cuando la cantidad de datos del usuario que desaparecen parece arriesgada.
Papelera y recuperación
Antes de que una eliminación válida borre una copia del dispositivo, Orkas la mueve a la papelera de sincronización. Las versiones descartadas en los conflictos se archivan para su revisión. Las subidas pendientes se conservan si falla la confirmación de cambios, de modo que el siguiente ciclo pueda reutilizar los bytes. Si un usuario borra deliberadamente los datos de la nube, los demás dispositivos ven un marcador de limpieza y dejan de volver a subir contenido desactualizado.
Qué nos aporta todo esto
El resultado es un sistema de sincronización con límites claros. Los dispositivos preparan y verifican el contenido. El almacenamiento de objetos guarda los bytes cifrados. El servidor publica el índice. El bloqueo de sincronización de la cuenta y el bloqueo del servidor mantienen los ciclos en orden. Las reglas resuelven los casos habituales. La asistencia del modelo ayuda con los conflictos ambiguos. La confirmación de eliminación y la papelera protegen a los usuarios de los errores más costosos.
Ese es el estándar que Orkas necesita para la sincronización en la nube: no magia, ni una réplica ciega, sino un mecanismo cuidadoso que permita trasladar los datos del usuario entre dispositivos y seguir ofreciendo una experiencia coherente.