Der Artikel „Wie die Synchronisierung funktioniert“ beschreibt, was du siehst. Dieser hier geht eine Ebene tiefer, zu dem, was jedes Gerät und der Server tatsächlich mit deinen Änderungen machen.
Jede Änderung wird zu einer Operation
Wenn du eine Notiz bearbeitest, erledigt dein Gerät zwei Dinge in einem Schritt: Es speichert den neuen Text in seiner lokalen Datenbank, und es legt eine Operation in eine Warteschlange, also einen kleinen Eintrag, der sagt: „Diese Notiz hat sich geändert, hier ist die neue Version.“ Erstellen, Bearbeiten, Anheften, Taggen, Archivieren und Löschen einer Notiz sind alles Operationen.
Bevor es die Warteschlange abschickt, räumt dein Gerät sie auf. Zehn schnelle Bearbeitungen derselben Notiz werden zu einer. Heftest du eine Notiz an, während du noch darin tippst, werden das Anheften und der neue Text zu einer einzigen Operation zusammengeführt, sodass keine der beiden Änderungen verloren geht. Es zählt nur die Reihenfolge in der Warteschlange: Eine spätere Änderung gewinnt immer gegen eine frühere, egal was die Uhr des Geräts sagt.
Eine Operation verlässt die Warteschlange erst, wenn der Server sie bestätigt hat. Bricht die Verbindung mittendrin ab oder schließt du die App während der Synchronisierung, ist die Warteschlange beim nächsten Mal noch da, und nichts geht verloren.
Erst senden, dann abholen
Die Synchronisierung besteht aus zwei einfachen Gesprächen mit dem Server:
- Senden (Push). Dein Gerät schickt seine wartenden Operationen in Stapeln. Der Server wendet jede einzelne an und schreibt sie in ein Änderungsprotokoll für dein Konto, wobei jeder Eintrag die nächste fortlaufende Nummer bekommt.
- Abholen (Pull). Dein Gerät fragt: „Was hat sich seit Nummer 1.234 geändert?“ Der Server antwortet mit jedem Protokolleintrag nach dieser Nummer, und das Gerät überträgt sie in seine lokale Datenbank.
Weil sich jedes Gerät die letzte Nummer merkt, die es gesehen hat, lädt es nur herunter, was neu ist. Dabei spielt es keine Rolle, wie lange ein Gerät offline war: Es macht genau dort weiter, wo es aufgehört hat.
Alles, was deine Notizen verändert, läuft durch dieses Protokoll, auch Änderungen über die API oder über ein per MCP verbundenes KI-Tool. Deshalb erscheint eine Notiz, die ein KI-Assistent für dich schreibt, auf all deinen Geräten wie jede andere.
Wie Konflikte erkannt werden
Jede Bearbeitung, die dein Gerät sendet, trägt einen Vermerk über die letzte Version dieser Notiz, die es gesehen hat. Hat sich die Kopie auf dem Server seitdem geändert, weil ein anderes Gerät die Notiz zwischendurch bearbeitet hat, überschreibt der Server nichts. Stattdessen antwortet er mit seiner eigenen Kopie.
Dein Gerät versucht dann eine Drei-Wege-Zusammenführung, die Technik, die auch Versionsverwaltungswerkzeuge verwenden. Es vergleicht drei Texte: die Version, von der beide Geräte ausgegangen sind, deine und die des Servers. Betreffen die Bearbeitungen verschiedene Teile der Notiz, kombiniert es sie und sendet das zusammengeführte Ergebnis, und du merkst nichts davon. Nur wenn beide Geräte dieselben Zeilen geändert haben, fragt Caliu dich, welche Version du behalten willst. Siehe den Artikel „Synchronisierungskonflikte lösen“.
Manche Änderungen können nie in Konflikt geraten. Anheften, Archivieren und der Schreibschutz einer Notiz zählen nicht als Bearbeitungen ihres Textes, deshalb lassen sie sich mit allem sauber zusammenführen.
Dieselben Regeln auf jedem Gerät
Die Web-App, die Apple-Apps und die Android-App sind in drei verschiedenen Sprachen geschrieben, folgen aber denselben Synchronisierungsregeln. Die Regeln zum Aufräumen der Warteschlange werden auf allen dreien gegen einen gemeinsamen Satz von Testfällen geprüft, sodass eine Änderung von einem Gerät auf jedem anderen gleich behandelt wird.
Ohne Konto
Ohne Konto verlässt nichts jemals dein Gerät. Wenn du dich anmeldest, werden die Notizen, die schon auf deinem Gerät liegen, Teil deines Kontos und wie jede andere Änderung hochgeschickt.