La synchronisation cloud des données utilisateur ne se résume pas à l’envoi et au téléchargement. Elle doit protéger les contenus privés en transit, limiter les coûts de stockage, sérialiser les écritures de plusieurs appareils, comprendre différents formats de données, demander confirmation avant les suppressions dangereuses et préserver un retour en arrière lorsqu’une décision s’avère mauvaise.
Orkas traite la synchronisation cloud comme une frontière du produit, pas comme un utilitaire en arrière-plan. Conversations, Agents, Skills, état des tâches, fichiers de connaissances et paramètres doivent tous circuler entre appareils avec une responsabilité clairement répartie : l’appareil prépare le contenu, le stockage objet conserve les octets et le serveur détient l’index faisant autorité.
Le cadre ci-dessous est celui que nous utilisons pour raisonner sur le système : flux de contenu chiffré, stockage adressé par contenu, verrou de synchronisation au niveau du compte, validation gérée par le serveur, règles de synchronisation déterministes, traitement des conflits assisté par modèle, confirmation des suppressions, corbeille et marqueurs de récupération.
Le contrat de synchronisation
Chaque passe de synchronisation répond à quatre questions produit : quel contenu peut être transféré, comment est-il protégé, qui peut publier un nouvel index cloud et comment l’utilisateur peut-il récupérer ses données si la synchronisation a pris la mauvaise décision ?
Le chemin du contenu chiffré
Les données utilisateur sont préparées sur l’appareil avant d’atteindre le stockage. Le moteur de synchronisation normalise l’ensemble candidat, calcule l’identité du contenu, chiffre les charges utiles, les téléverse avec des identifiants de courte durée et vérifie les octets téléchargés avant de les écrire sur l’appareil.
Stockage et index
Orkas sépare les octets stockés de l’index cloud. Les objets de contenu contiennent les données chiffrées. L’index consigne les éléments logiques qui doivent exister, l’identité de leur contenu, les compteurs de version, la taille stockée, la révision cloud et l’état de suppression. L’appareil conserve aussi un état de référence de la dernière passe réussie pour distinguer l’ancien état des nouvelles modifications.
Une passe de synchronisation
Une passe commence à faible coût et ne devient stricte que lorsqu’il y a réellement du travail. Orkas vérifie d’abord si quelque chose a changé, puis obtient le verrou de synchronisation du compte, recalcule les changements pendant qu’il le détient, transfère le contenu, demande au serveur de valider les opérations sur l’index et met enfin à jour l’état de référence de l’appareil.
Verrou de synchronisation et validation
Le verrou de synchronisation et le contrôle de validation résolvent des problèmes différents. Le verrou de synchronisation réduit le travail concurrent inutile entre appareils. Le verrou côté serveur sérialise les écritures de l’index. Le contrôle de la révision cloud attendue empêche une lecture ancienne de devenir la nouvelle référence. Les contrôles de quota et de schéma s’exécutent dans le même circuit de validation géré par le serveur.
Les règles avant les conflits
La plupart des décisions de synchronisation ne sont pas des conflits. L’appareil compare l’état de référence, ses données actuelles et l’index cloud. Si seul le cloud a changé, il récupère. Si seul l’appareil a changé, il envoie. Si les deux ont changé, il oriente le traitement selon le type de contenu. Si quelque chose a disparu, il suit le circuit de protection contre les suppressions au lieu de retirer immédiatement les données.
Traitement des conflits
Lorsque les deux côtés ont réellement changé, Orkas ne réduit pas tout à la règle du dernier écrivain gagnant. Les journaux par ajout peuvent fusionner en intégrant les enregistrements manquants. Les listes peuvent fusionner selon l’identité stable des enregistrements. Le JSON structuré peut utiliser des compteurs de version et des horodatages. Pour les fichiers Markdown et binaires, l’approche est prudente : si le système ne peut pas prouver que la fusion est sans perte, il conserve une copie complète de la version écartée.
Pour les conflits ambigus de texte ou de contenu structuré, le produit peut regrouper les versions pertinentes pour un traitement assisté par modèle. Le modèle peut expliquer le conflit, proposer une version fusionnée ou aider l’utilisateur à choisir. Ce n’est pas le seul garde-fou : la validation déterministe, l’archivage des originaux et une récupération visible par l’utilisateur restent intégrés au parcours.
Confirmation des suppressions
Les suppressions sont traitées comme des transitions d’état. Une suppression distante devient un marqueur de suppression. Une suppression sur l’appareil devient une opération candidate. Orkas vérifie les écritures récentes, surveille les vagues de suppressions et interrompt la passe pour demander confirmation lorsque la quantité de données utilisateur qui disparaît semble risquée.
Corbeille et récupération
Avant qu’une suppression valide n’efface une copie sur l’appareil, Orkas la déplace dans la corbeille de synchronisation. Les versions écartées lors des conflits sont archivées pour examen. Les téléversements en attente survivent à un échec de validation pour que la passe suivante puisse réutiliser les octets. Si un utilisateur efface volontairement ses données cloud, les autres appareils voient un marqueur de nettoyage et cessent de renvoyer du contenu périmé.
Ce que cela nous apporte
Il en résulte un système de synchronisation aux limites claires. Les appareils préparent et vérifient le contenu. Le stockage objet conserve les octets chiffrés. Le serveur publie l’index. Le verrou de synchronisation du compte et le verrou serveur ordonnent les passes. Les règles traitent les cas courants. L’assistance du modèle aide à résoudre les conflits ambigus. La confirmation des suppressions et la corbeille protègent les utilisateurs contre les erreurs les plus coûteuses.
C’est le niveau qu’Orkas exige pour la synchronisation cloud : ni magie ni miroir aveugle, mais un mécanisme prudent qui permet aux données utilisateur de circuler entre appareils tout en restant cohérentes.