En la era digital actual, la necesidad de acceder a nuestros correos electrónicos, calendarios y notas sin interrupciones es fundamental, incluso cuando no disponemos de conexión a internet. Fastmail, un servicio de correo electrónico reconocido por su robustez y funcionalidad, ha dado un paso adelante en 2024 con la implementación de soporte completo para su uso offline, permitiendo a los usuarios mantener su productividad sin importar el estado de la conexión. Esta innovadora función se basa en una arquitectura cuidadosamente diseñada que combina tecnologías avanzadas para ofrecer una experiencia fluida y eficiente. La demanda de funcionalidades offline en aplicaciones de correo y productividad no es nueva, pero Fastmail ha logrado abordar esta necesidad de manera única y efectiva. A través de un enfoque centrado en la separación clara entre la aplicación y el servidor, se ha logrado construir un sistema donde la comunicación y sincronización se realizan mediante el protocolo JMAP (JSON Meta Application Protocol).
Esta separación ha sido clave para incorporar una capa de caché que opera directamente en el dispositivo del usuario, facilitando la operación completa sin conexión. La arquitectura general contiene tres componentes principales: la aplicación de Fastmail, la capa de caché local y el servidor central. La aplicación interactúa con la capa de caché usando JMAP, y esta a su vez, en condiciones con conexión de red, se comunica con el servidor para obtener y actualizar información. Esta estructura modular permite que la aplicación funcione con la misma lógica independientemente de si el dispositivo está online o offline, garantizando que la experiencia del usuario sea consistente y sin fisuras. Una de las grandes innovaciones en este sistema es la implementación en el dispositivo del usuario de un servidor JMAP local que responde a las solicitudes de la aplicación.
Este servidor local puede manejar datos disponibles en el almacenamiento interno, procesar solicitudes y, si hace falta, solicitar información al servidor central. Cuando no hay conexión, opera exclusivamente con los datos almacenados, permitiendo realizar tareas como leer correos, gestionar eventos en el calendario, buscar contactos y realizar cambios que luego se sincronizan automáticamente cuando se restablece la conexión. El desafío más importante en el diseño de esta arquitectura ha sido garantizar que las operaciones de lectura y escritura funcionen suavemente sin afectar el rendimiento de la interfaz de usuario. Para conseguirlo, Fastmail ha optado por ejecutar la capa de caché en un hilo separado del sistema operativo. Gracias a que la aplicación está desarrollada con tecnologías web, es posible utilizar trabajadores (workers) para mantener la ejecución de procesos en paralelo sin bloquear la experiencia del usuario.
Entre los distintos tipos de trabajadores disponibles en la tecnología web, Fastmail ha optado por utilizar los shared workers debido a su capacidad para ser compartidos entre múltiples pestañas o ventanas del navegador. Esto no solo mejora la eficiencia al evitar la apertura de múltiples conexiones, sino que también facilita el mantenimiento de una conexión persistente con el servidor para recibir actualizaciones instantáneas, incluso en segundo plano. La gestión y almacenamiento de datos locales es fundamental para un funcionamiento offline confiable. Para ello, Fastmail utiliza IndexedDB, una base de datos en el navegador que permite almacenar grandes volúmenes de datos estructurados. IndexedDB soporta transacciones que aseguran la integridad y consistencia de la información, además de permitir la creación de índices para mejorar la velocidad de acceso.
Si bien la API nativa de IndexedDB es conocida por su complejidad y verbosidad, Fastmail ha implementado un envoltorio que convierte sus operaciones en promesas, facilitando la escritura y mantenimiento del código. Esta envoltura permite trabajar con IndexedDB de forma mucho más intuitiva y moderna, haciendo que las operaciones de lectura y escritura sean sencillas y menos propensas a errores. Cada tipo de datos manejado por Fastmail, ya sean correos electrónicos, eventos de calendario o contactos, tiene su propio almacén en IndexedDB. Dentro de cada almacén se guarda un metadato específico bajo una clave especial que almacena información crucial para la gestión eficiente de cambios y sincronizaciones, como el estado del servidor, secuencias de modificaciones y el número de registros eliminados pendientes de purgado. El concepto de modseq (secuencia de modificación) es central en este sistema.
Cada registro almacenado tiene asignado un número modseq que aumenta con cada cambio realizado. Esto permite determinar de manera rápida qué registros son nuevos, cuáles han sido actualizados y cuáles han sido eliminados, facilitando la sincronización eficiente con el servidor y reduciendo la necesidad de transferir datos innecesarios. La clave de acceso a cada registro combina el identificador de la cuenta y el identificador único del ítem, dado que ciertos datos pueden existir en múltiples cuentas, como los contactos compartidos o personalizados. Fastmail optimiza esta estructura codificando estas claves en formatos binarios eficientes en lugar de usar cadenas de texto, mejorando el rendimiento y reduciendo el tamaño de almacenamiento. Este enfoque también permite a Fastmail manejar solicitudes JMAP que contienen múltiples llamadas a métodos en una sola transacción de base de datos local, mejorando el rendimiento y la coherencia de la información.
Sin embargo, cuando una llamada requiere datos que no están disponibles localmente, el sistema transmite de manera inteligente esta y las siguientes llamadas al servidor, evitando esperas innecesarias y manteniendo la velocidad de respuesta. La persistencia y gestión de las conexiones con el servidor son otros aspectos que han sido pulidos. Fastmail mantiene abierta una conexión de tipo EventSource para recibir notificaciones en tiempo real, lo cual es esencial para sincronizar los cambios entrantes apenas están disponibles, sin importar si la aplicación está en primer plano o funcionando en segundo plano. Esta arquitectura garantiza que, al volver a estar en línea, todas las modificaciones realizadas durante el período offline se sincronicen automáticamente con el servidor. Cambios en eventos del calendario, respuestas a correos electrónicos o actualizaciones en contactos se transmiten de forma segura y eficiente, preservando los datos y evitando conflictos.
A nivel de experiencia de usuario, esta solución permite utilizar Fastmail de manera integral aún sin conexión, algo que históricamente ha sido un desafío en aplicaciones web. La capacidad para buscar, redactar nuevos elementos, gestionar el calendario y tener toda la información crucial accesible en todo momento mejora significativamente la productividad y confiabilidad del servicio. Además, el hecho de que Fastmail esté construido con tecnologías web modernas, incluyendo el uso de workers y almacenamiento local avanzado, permite mantener una base de código única que funciona de manera uniforme en múltiples dispositivos y plataformas. Esto beneficia a los usuarios, quienes obtienen una experiencia homogénea sin importar desde dónde acceden a su correo y datos. El desarrollo y lanzamiento de esta arquitectura de soporte offline ha sido un proceso complejo que pone en evidencia el compromiso de Fastmail con la innovación y la satisfacción del usuario.
Al comprender los desafíos técnicos y las expectativas actuales, ha sido posible entregar una solución que no solo responde a una de las peticiones más demandadas por sus usuarios, sino que además lo hace con una calidad sobresaliente y eficiencia. En resumen, el soporte offline completo de Fastmail en 2024 representa un hito importante en la evolución de las aplicaciones de correo electrónico y productividad. Gracias a una arquitectura clara basada en la separación entre aplicación y servidor, el uso eficiente de tecnologías web como IndexedDB y shared workers, y una gestión inteligente de datos mediante JMAP, los usuarios ahora pueden disfrutar de una experiencia confiable, rápida y precisa, sin importar las condiciones de conectividad. Este avance posiciona a Fastmail como una de las opciones líderes para quienes buscan un servicio de correo y calendario moderno, robusto y perfectamente adaptado a las necesidades actuales. Con los usuarios cada vez más demandantes y la conectividad siendo variable en muchas regiones, esta arquitectura asegura que la productividad se mantenga ininterrumpida.
El equipo de Fastmail continúa comprometido en mejorar y ampliar estas capacidades, prometiendo más innovaciones que seguirán marcando la pauta en servicios de correo electrónico en los próximos años.