Diseñar la frontera de sincronización

Un equipo pequeño tiene atención limitada. Cada hora coordinando conversaciones de red falta para explicar una importación fallida o mostrar bien un mensaje. JMAP ofrece una frontera más coherente entre el modelo local y el servicio que mantiene el buzón. Su ventaja es la claridad arquitectónica, no la promesa de un correo sin dificultades.

Su base es RFC 8620, publicado en 2019. RFC 8621, también de 2019, define JMAP para correo: mensajes, buzones, conversaciones y envío desde el cliente. Es un estándar abierto con un modelo definido, no un punto de acceso propietario que haya que reconstruir.

Describir el trabajo en vez de coordinar solicitudes

JMAP intercambia JSON mediante HTTPS. Una solicitud puede incluir varias llamadas y una posterior puede referenciar resultados anteriores. Para una bandeja, se pueden describir juntas una consulta y la obtención de los datos de sus identificadores, respetando los límites anunciados por el servidor. Menos intercambios dependientes pueden ayudar con latencia alta; el resultado depende de la carga y la implementación.

Las dependencias quedan explícitas: qué propiedades necesita la pantalla y qué resultado alimenta el paso siguiente. Siguen haciendo falta paginación, gestión de errores y límites de trabajo. Agrupar organiza solicitudes; no autoriza a descargar toda la cuenta al abrir una ventana.

Tratar el estado como un punto de control duradero

Los tokens de estado permiten preguntar qué cambió desde un punto conocido. /changes informa de identificadores creados, actualizados y destruidos; el cliente obtiene los datos necesarios y actualiza su almacenamiento. Las notificaciones push indican cambios de estado para iniciar la sincronización, pero no la sustituyen.

Un punto de control debe corresponder a datos guardados de forma duradera. Hay que prever un fallo entre recibir y almacenar una respuesta. Si el servidor ya no puede calcular el historial solicitado, responde cannotCalculateChanges y hace falta una resincronización más completa. Recuperarse tras una ausencia larga forma parte del diseño normal.

Mantener visibles las responsabilidades restantes

JMAP no reemplaza SMTP entre servidores. El envío desde un cliente y la entrega en la red siguen siendo tareas distintas. Tampoco elimina automáticamente el spam, garantiza privacidad de extremo a extremo o crea funcionamiento sin conexión. Este requiere almacenamiento local, reglas para acciones pendientes y gestión de conflictos.

El soporte no es universal. El producto debe descubrir capacidades, decidir qué proveedores admite y mantener las rutas de compatibilidad necesarias. El rendimiento depende del servidor, el cliente y la carga de trabajo. IMAP moderno también ofrece capacidades de sincronización.

La lección para el estudio es elegir un contrato que permita entender la recuperación. Por qué cuesta crear una app de correo: cincuenta años de compatibilidad explica las restricciones heredadas y Cómo JMAP moderniza el correo la perspectiva del usuario. Una comunicación más clara deja espacio para una mejor aplicación, que el equipo todavía debe construir.