Im digitalen Zeitalter ist ständige Online-Verfügbarkeit längst nicht mehr selbstverständlich. Netzwerkausfälle, schwache Verbindungen oder Situationen ohne Internetzugang stellen Anwender häufig vor Herausforderungen. Besonders im Bereich der E-Mail- und Kalenderverwaltung wünschen sich viele Nutzer die Möglichkeit, auch offline effizient arbeiten zu können. Fastmail, ein renommierter Anbieter von E-Mail- und Kalenderdiensten, hat sich diesem Wunsch angenommen und 2024 mit der Einführung eines umfassenden Offline-Supports einen bedeutenden Schritt gemacht. Die technische Grundlage dieses Fortschritts basiert auf einer sehr wohlüberlegten und innovativen Architektur, die sowohl im App- als auch im Webbereich erfolgreich umgesetzt wurde.
Die Entwicklung zeigt beispielhaft, wie komplexe Webanwendungen auch im Offline-Modus leistungsfähig und benutzerfreundlich bleiben können. Das Herzstück des Fastmail-Offline-Modus ist die saubere Trennung zwischen App-Logik und Server-Interaktionen. Das bedeutet, dass sämtliche Dateninteraktionen über das standardisierte JMAP-Protokoll erfolgen. JMAP, kurz für JSON Meta Application Protocol, ist ein modernes, REST-ähnliches Protokoll zur effizienten Verwaltung von E-Mail und Kalenderdaten. Diese klare Schnittstelle erlaubt es Fastmail, eine sogenannte Caching-Schicht in den Datenfluss einzubinden, die lokal auf dem Gerät des Nutzers läuft und sämtliche Anfragen des Clients zunächst versucht, mit vorhandenen Offline-Daten zu bedienen.
Die Architektur verläuft in etwa nach dem Schema App kommuniziert über JMAP mit einer lokalen Caching-Schicht, welche wiederum bei Bedarf mit dem Fastmail-Server kommuniziert. Durch diese Zwischenschicht ist die App selbst kaum von Änderungen betroffen und kann weiterhin stateless und modular laufen. Die Caching-Schicht fungiert als intelligenter Vermittler, der sowohl beim Lesen als auch Schreiben der Daten im Hintergrund die Konsistenz sicherstellt und Synchronisationsaufgaben übernimmt. Die Herausforderung dieser Vorgehensweise liegt in der Komplexität, Offline-Daten mit potentiell unvollständigen Informationen intelligent und performant zu verwalten. Die Caching-Schicht muss in der Lage sein, JMAP-Anfragen vollständig offline zu bedienen, sofern die Daten im lokalen Speicher vorliegen.
Sollte ein Teil der Anfrage Daten betreffen, die nicht lokal verfügbar sind, muss die Schicht dies erkennen und die jeweilige Anfrage an den Server weiterleiten. Dabei ist es essenziell, die Anzahl der Netzwerkaufrufe gering zu halten, um die Performance zu wahren, aber gleichzeitig eine reibungslose Nutzererfahrung zu garantieren. Um dies zu erreichen, führt Fastmail eine mehrphasige Verarbeitung von JMAP-Methoden durch. Zunächst werden alle abgedeckten Anfragen lokal bearbeitet. Sobald eine Anfrage nicht lokal vollständig beantwortet werden kann, werden alle noch offenen Methoden in einem Rutsch an den Server weitergereicht.
Nach erfolgreichem Empfang der Serverantworten werden diese unmittelbar im lokalen Datenspeicher aktualisiert. Diese Art der Verarbeitung sorgt für eine effiziente Datenverwaltung, ohne die UI oder das Nutzererlebnis zu blockieren oder zu verzögern. Um zusätzliche Verzögerungen und technische Komplikationen zu vermeiden, wird die Caching-Schicht in einem eigenen Betriebssystem-Thread beziehungsweise in einer Web Worker-Instanz implementiert. Dieser Ansatz stellt sicher, dass die Hauptanwendung werbungsfrei und ohne spürbare Ladezeiten läuft. Im Web-Bereich sind hierfür Shared Workers die bevorzugte Lösung, da sie unabhängig von der Anzahl der geöffneten Tabs persistent arbeiten und damit ressourcenschonend Updates und Synchronisierungen übernehmen können.
Service Worker wurden zunächst ausprobiert, erfüllten jedoch nicht alle Anforderungen, vor allem wegen Einschränkungen bezüglich Netzwerkrequests und deren Kontrolle, insbesondere auf iOS-Geräten. Der persistente Shared Worker hält unter anderem eine EventSource-Push-Verbindung zum Server offen, mit der Instant-Updates in Echtzeit übermittelt werden. Diese Funktion ist entscheidend für eine flüssige Nutzererfahrung, da Änderungen, die auf anderen Geräten oder im Web vorgenommen werden, sofort im Offline-Caching berücksichtigt werden können, sobald eine Internetverbindung besteht. Zur Speicherung und Verwaltung der Offline-Daten nutzt Fastmail IndexedDB, die Standardlösung für Webanwendungen zur lokalen Datenspeicherung großer, strukturierter Datenmengen. IndexedDB bietet Objekt-Speicher ähnlich einer datenbankähnlichen Umgebung, inklusive Schlüssel-Indices und Transaktionen, die Datenkonsistenz garantieren.
Trotz der anfangs etwas schwerfälligen API ist IndexedDB mit einer übersetzten Promise-basierten Wrapper-Funktion einfach handhabbar und ermöglicht so performant zuverlässige Datenspeicherung. Fastmail nutzt für verschiedene Datentypen – etwa E-Mails, Kontakte, Kalenderereignisse – jeweils separate Objekt-Stores in IndexedDB, in denen die individuellen Datensätze abgelegt werden. Außerdem werden wichtige Metadaten in jedem Objekt-Store gehalten, die den Synchronisationsstatus beschreiben. Diese umfassen etwa Informationen zu bereits geladenen Datenmengen, dem letzten Synchronisationsstatus mit dem Server, Modifikationssequenzen und der Verwaltung gelöschter Datensätze. Das zentrale Konzept der Modifikationssequenz, kurz modseq, erlaubt eine effiziente Nachverfolgung von Änderungen.
Jeder Datensatz erhält eine eindeutige, fortlaufende Nummer, die bei jeder Änderung erhöht wird. So kann die Caching-Schicht schnell erkennen, welche Objekte neu hinzugekommen, modifiziert oder gelöscht wurden. Dieses Verfahren optimiert die Synchronisation, da nur die tatsächlich geänderten Datensätze abgeglichen werden müssen. Ein weiterer Meilenstein der Architektur ist die Unterstützung mehrerer Accounts, zum Beispiel persönlicher und gemeinsamer Kontakte, bei denen nur die Kombination aus Account-ID und Daten-ID als eindeutiger Schlüssel auf dem Gerät gespeichert wird. Die Speicherung erfolgt dabei im binären Format, um die Performance und Speicherplatznutzung zu optimieren.
Fastmail beweist mit dieser Architektur eindrucksvoll, wie sich eine moderne Webapplikation mittels intelligenter Zwischenschichten und lokaler Speicherung so erweitern lässt, dass sie auch im Offline-Modus nahezu alle Funktionen bereitstellt, die Nutzer von einer Online-Anwendung gewohnt sind. Vom Schreiben und Suchen von E-Mails über die Bearbeitung von Kalenderterminen bis zu Notizen und Kontakten sind keine Einschränkungen mehr spürbar. Der vorgestellte Ansatz ist nicht nur technisch innovativ, sondern auch aus Sicht der Nutzerfreundlichkeit ein enormer Gewinn. Die vollständige Offline-Nutzbarkeit reduziert die Abhängigkeit von permanenten Internetverbindungen und verbessert die Zuverlässigkeit, gerade in Unternehmensumgebungen oder auf Reisen. Gleichzeitig verhindert die sichere, transparente Synchronisation bei Wiederherstellung der Verbindung Datenverlust und Inkonsistenzen.
Ausblickend arbeitet Fastmail daran, auch komplexere Offline-Interaktionen abzudecken, wie zum Beispiel das automatische Synchronisieren von lokal vorgenommenen Änderungen zurück auf den Server. Die Architektur legt hierfür bereits stabile, skalierbare Grundlagen, welche sich flexibel erweitern lassen. Insgesamt markiert die Veröffentlichung des Offline-Supports in Fastmail im Jahr 2024 einen bedeutenden Fortschritt für moderne webbasierte Kommunikationslösungen. Die Kombination aus JMAP-Standard, intelligenter Caching-Schicht und leistungsfähiger lokaler Speicherung setzt Maßstäbe für zukünftige Entwicklungen im Bereich der E-Mail- und Kalendertechnologien.