¿Qué es la arquitectura de Outbox?
Esta página es una traducción automática del original en japonés. Leer el original en japonés
La arquitectura de Outbox (patrón de Outbox) es un patrón de diseño que pone en cola los mensajes localmente y los transmite automáticamente cuando se restablece la conexión de red. Con este mecanismo, SimpleMemo deja una nota en el terminal incluso en entornos fuera de línea como metros y en vuelo y los envía cuando está conectado.
La arquitectura de Outbox es un patrón de garantía de entrega de mensajes en un sistema distribuido. El remitente primero perpetúa el mensaje a la Outbox local, y el proceso en segundo plano monitorea la Outbox y lo envía secuencialmente cuando está conectado a la red. Después de confirmar que la transmisión es exitosa, elimine el mensaje de la Outbox. Esto evita la "pérdida de datos en caso de un fallo de red". Los mensajes que solo perdieron la respuesta se enviarán de nuevo, así que para evitar que el mismo mensaje se duplique y no se reciba, combínelo con el lado receptor para evitar la duplicación (como las teclas de encendido). En SimpleMemo, el ID de mensaje para cada nota se pasa como una clave de encendido al servicio de entrega de correo para evitar la duplicación en el tiempo 24. En las aplicaciones móviles, es la tecnología básica del primer diseño fuera de línea.
Los 3 componentes del patrón Outbox
Implementación de la Outbox de SimpleMemo
Outbox de SimpleMemo no es solo una cola fuera de línea, sino que está diseñado para combinar seguridad y UX. Cifrar con AES-256-GCM al guardar notas, y descifrar solo al enviar. La nota enviada se eliminará de la Outbox. Cuando presionas el botón de envío sin conexión, se muestra "Sin conexión - Enviar cuando está conectado" y deja la nota en la Outbox.
Ejemplo: Envío de notas en el metro
1. Introduce tu idea en una nota en el vagón del metro y pulsa el botón de envío
2. La aplicación muestra "Desconectado - Enviar cuando está conectado" (las notas permanecen en el terminal como a la espera de transmisión)
3. En la parte posterior, cifra la nota con AES-256-GCM y guárdala en la Outbox
4. Vaya a tierra y conéctese a LTE/Wi-Fi → Si la aplicación se está ejecutando, NWPathMonitor detecta la conexión (si está cerrada, la actualización en segundo plano de iOS o la próxima vez que abra la aplicación)
5. Tome una nota de la Outbox, descifre y envíela a Cloudflare Workers API
6. La API de Resend acepta el envío y la Relay API devuelve una respuesta correcta. Esto no confirma la llegada al buzón.
7. Eliminar la nota de la Outbox
Preguntas frecuentes (Arquitectura de la Outbox)
¿Qué es la arquitectura de Outbox?
Es un patrón de diseño que almacena mensajes en una cola local (caja de transmisión) y los transmite automáticamente cuando está conectado a la red. Mientras esté fuera de línea, se dejará en el terminal como esperando la transmisión, y cuando se restablezca la conexión, la transmisión se reanudará.
¿Cómo funciona la Outbox de SimpleMemo?
Si la red no está disponible al enviar una nota, cifre con AES-256-GCM y guárdela en la Outbox. Cuando se devuelva la conexión, envíe a Resend API a través de Cloudflare Workers tan pronto como la aplicación se esté ejecutando, y si está cerrada, actualice el fondo de iOS o la próxima vez que se abra la aplicación. Después de enviarlo, elimínelo de la Outbox.
¿Las notas de la Outbox son seguras?
La Outbox almacenada en el terminal está encriptada con AES-256-GCM. La clave de cifrado se almacena en el llavero iOS, y la aplicación la lee al cifrar y descifrar. La clave es una configuración que no migra a otro terminal. La entrega de correo electrónico no es un cifrado de extremo a extremo. Por favor, compruebe también copia de seguridad y detalles de gestión de claves.