Dentro la sincronizzazione

L'articolo "Come funziona la sincronizzazione" racconta ciò che vedi. Questo scende di un livello, in quello che ogni dispositivo e il server fanno davvero con le tue modifiche.

Ogni modifica diventa un'operazione

Quando modifichi una nota, il dispositivo fa due cose in un solo passaggio: salva il nuovo testo nel suo database locale e aggiunge un'operazione a una coda, un piccolo record che dice "questa nota è cambiata, ecco la nuova versione". Creare, modificare, fissare, taggare, archiviare ed eliminare una nota sono tutte operazioni.

Prima di inviare la coda, il dispositivo la mette in ordine. Dieci modifiche rapide alla stessa nota diventano una sola. Se fissi una nota mentre ci stai ancora scrivendo, il fissaggio e il nuovo testo vengono uniti in un'unica operazione, così nessuna delle due modifiche va persa. Conta solo l'ordine della coda: una modifica più recente vince sempre su una precedente, qualunque ora segni l'orologio del dispositivo.

Un'operazione lascia la coda solo dopo la conferma del server. Se la connessione cade a metà, o chiudi l'app nel bel mezzo di una sincronizzazione, la coda è ancora lì la volta successiva e non si perde nulla.

Invio, poi ricezione

La sincronizzazione è fatta di due semplici conversazioni con il server:

  • Invio. Il dispositivo manda le operazioni in coda a lotti. Il server le applica una per una e le scrive in un registro delle modifiche del tuo account, dando a ogni voce il numero successivo della sequenza.
  • Ricezione. Il dispositivo chiede: "cosa è cambiato dal numero 1.234 in poi?" Il server risponde con tutte le voci del registro successive a quel numero, e il dispositivo le applica al suo database locale.

Siccome ogni dispositivo ricorda l'ultimo numero che ha visto, scarica solo ciò che è nuovo. Non importa quanto a lungo un dispositivo sia rimasto offline: riprende esattamente da dove si era fermato.

Tutto ciò che cambia le tue note passa da quel registro, comprese le modifiche fatte tramite l'API o da uno strumento AI collegato via MCP. Per questo una nota che un assistente AI scrive per te compare su tutti i tuoi dispositivi come qualsiasi altra.

Come si individuano i conflitti

Ogni modifica che il dispositivo invia porta con sé un'indicazione dell'ultima versione di quella nota che ha visto. Se nel frattempo la copia sul server è cambiata, perché un altro dispositivo l'ha modificata, il server non sovrascrive nulla. Risponde invece con la propria copia.

A quel punto il dispositivo tenta un'unione a tre vie, la tecnica usata dagli strumenti di controllo di versione. Confronta tre testi: la versione da cui erano partiti entrambi i dispositivi, la tua e quella del server. Se le modifiche toccano parti diverse della nota, le combina e invia il risultato unito, senza che tu te ne accorga. Caliu ti chiede quale versione tenere solo quando entrambi i dispositivi hanno cambiato le stesse righe. Vedi l'articolo "Risolvere i conflitti di sincronizzazione".

Alcune modifiche non possono mai andare in conflitto. Fissare una nota, archiviarla o renderla di sola lettura non conta come una modifica al suo testo, quindi si uniscono senza problemi con qualsiasi cosa.

Le stesse regole su ogni dispositivo

L'app web, le app Apple e l'app Android sono scritte in tre linguaggi diversi, ma seguono le stesse regole di sincronizzazione. Le regole per riordinare la coda vengono verificate su tutte e tre con un unico insieme condiviso di casi di test, così una modifica fatta su un dispositivo viene trattata allo stesso modo da tutti gli altri.

Senza account

Senza account, nulla lascia mai il tuo dispositivo. Quando accedi, le note già presenti sul dispositivo entrano nel tuo account e vengono inviate come qualsiasi altra modifica.