· 3 Min. Lesezeit
Local-first — und warum es Clessira prägt
Die meisten Anwendungen im Alltag laufen auf der Infrastruktur eines Anbieters. Eingaben gehen an einen Server, das Ergebnis kommt zurück, und das lokale Gerät dient im Wesentlichen als Anzeigefläche. Die Fehlerfälle dieser Anordnung sind bekannt: Ohne Netzwerkverbindung ist die Anwendung nicht verfügbar, und wenn der Anbieter den Dienst einstellt oder ein Abo ausläuft, endet damit auch der Zugriff auf die dort gespeicherten Daten.
Local-first bezeichnet die umgekehrte Anordnung. Der Begriff stammt von Ink & Switch und beschreibt Software, die die maßgebliche Kopie der Daten auf dem Gerät der Nutzerin oder des Nutzers hält. Die Anwendung funktioniert ohne Netzwerkverbindung, Lese- und Schreibzugriffe gehen an den lokalen Speicher, und eine Synchronisation verteilt — soweit vorhanden — Änderungen zwischen Geräten, statt die einzige Kopie zu halten.
Was daraus folgt
Aus diesem Speichermodell ergeben sich mehrere Eigenschaften unmittelbar:
- Die Latenz wird vom lokalen Speicher bestimmt und nicht von einem Roundtrip, sodass die meisten Operationen ohne Ladezustand abschließen.
- Offline ist der Normalbetrieb und kein Fehlerzustand; die Verbindung betrifft die Synchronisation, nicht die Verfügbarkeit.
- Die Daten bleiben in einem dokumentierten Format lesbar und exportierbar, unabhängig von einem Konto.
- Daten, die nie übertragen werden, können nicht protokolliert, aggregiert oder bei einem Vorfall auf Anbieterseite offengelegt werden.
Konsequenzen für eine Zeiterfassung
Clessira, meine Zeiterfassung für macOS, ist auf diesem Modell aufgebaut. Zeiterfassungsdaten sind ein Minute-für-Minute-Protokoll darüber, woran jemand wann gearbeitet hat — die Datenkategorie, die sich am wenigsten dafür eignet, standardmäßig auf fremder Infrastruktur zu liegen.
Clessira hält ihre Daten deshalb in einer lokalen Datei. Es gibt kein Konto, und für den Betrieb der Anwendung ist keine serverseitige Komponente erforderlich. Sie startet ohne Netzwerkprüfung, erfasst unabhängig von der Verbindung und liest Kontext aus den Werkzeugen, die ohnehin auf dem Rechner installiert sind — Jira, der aktuelle Git-Branch —, statt diese Informationen über ein Backend zu leiten. Der Export ist eine gewöhnliche Operation auf einer Datei, die nie unzugänglich war.
Der Kompromiss
Local-first verlagert Backup und Multi-Device-Synchronisation vom Anbieter zur Nutzerin oder zum Nutzer. Die Daten deshalb auf einen Server zu legen, ist keine Lösung, und sie zu ignorieren ebenfalls nicht. Clessira begegnet dem, indem der Export ohne Bedingungen möglich ist und dateibasierter Sync über ein frei gewähltes Verzeichnis unterstützt wird — iCloud Drive, ein anderer Sync-Dienst oder eine Netzwerkfreigabe —, sodass Replikation über mehrere Geräte verfügbar ist, ohne dass ein Dienst die einzige Kopie hält.
Der Kompromiss lohnt sich dort, wo die Daten sensibel sind und die Anwendung für ihre eigentliche Funktion keinen Server benötigt. Bei einer Zeiterfassung trifft beides zu.