Glossário — Tecnologia

O que é a arquitetura Outbox

Esta página é uma tradução automática do original em japonês. Ler o original em japonês

A arquitetura Outbox (padrão Outbox) é um padrão de design que enfileira mensagens localmente e as transmite automaticamente quando a conexão de rede é restaurada. No SimpleMemo, esse mecanismo permite que você deixe uma nota no terminal e a envie quando estiver conectada, mesmo em ambientes offline, como metrôs e em voo.

Definição

A arquitetura Outbox é um padrão de garantia de entrega de mensagens em um sistema distribuído. O remetente primeiro perpetua a mensagem para o Outbox local (caixa de transmissão), e o processo em segundo plano monitora o Outbox e os envia sequencialmente quando conectado à rede. Depois de confirmar a transmissão bem-sucedida, exclua a mensagem do Outbox. Isso evita "perda de dados em caso de falha de rede". As mensagens que apenas perderam a resposta serão enviadas novamente, portanto, para evitar que a mesma mensagem seja duplicada e não recebida, combine-a com o lado receptor para evitar a duplicação (como teclas liga/desliga). SimpleMemo passa o ID da mensagem para cada memorando como uma chave de energia para o serviço de envio de e-mail para evitar a duplicação em 24 horas. Em aplicativos móveis, é a tecnologia básica do primeiro design offline.

3 elementos do padrão Outbox

Persistência local
Os memorandos são armazenados primeiro no armazenamento do dispositivo. Independentemente do estado da rede, a operação do usuário é concluída instantaneamente. No SimpleMemo, ele é criptografado e salvo com AES-256-GCM.
Reenviar quando a conexão for restaurada
Enquanto o aplicativo está em execução, o NWPathMonitor (monitoramento de status da rede API) detecta a recuperação da conexão e a reenvia. Enquanto o aplicativo estiver fechado, a atualização em segundo plano do iOS (iOS decide o tempo de execução) ou tente reenviá-lo na próxima vez que abrir o aplicativo.
Excluir com confirmação
Exclua a nota do Outbox somente depois de receber uma resposta de transmissão bem-sucedida do nosso Relay API (Trabalhadores Cloudflare). Em caso de erro, ele será reenviado automaticamente (até 5 vezes por caso 1. Notas interrompidas podem ser retransmitidas manualmente a partir da tela de histórico).

Implementação Outbox de SimpleMemo

O Outbox do SimpleMemo não é apenas uma fila offline, mas foi projetado para combinar segurança e UX. Criptografe com AES-256-GCM ao salvar notas e descriptografe apenas ao enviar. O memorando enviado será excluído do Outbox. Quando você pressiona o botão enviar offline, ele diz "Offline - Enviar quando conectado" e deixe o memorando em Outbox.

Exemplo: Enviando notas no metrô

Cenário

1. Digite sua ideia em um memorando no metrô e toque no botão enviar

2. O aplicativo diz "Offline - Enviar quando conectado" (memorandos permanecem no terminal enquanto aguardam a transmissão)

3. Na parte de trás, criptografe o memorando com AES-256-GCM e salve-o em Outbox

4. Vá para o chão e conecte-se ao LTE/Wi-Fi → Se o aplicativo estiver em execução, o NWPathMonitor detecta a conexão (se estiver fechada, a atualização em segundo plano do iOS ou na próxima vez que você abrir o aplicativo)

5. Faça uma nota do Outbox, descriptografe-a e envie-a para os trabalhadores Cloudflare API

6. Resend API aceita a entrega, e o Relay API retorna uma resposta bem-sucedida (não uma confirmação de que chegou na caixa de entrada)

7. Exclua a nota de Outbox

Perguntas Frequentes (Arquitetura Outbox)

O que é a arquitetura Outbox?

É um padrão de design que armazena mensagens em uma fila local (caixa de transmissão) e as transmite automaticamente quando conectadas à rede. Enquanto estiver offline, ele será deixado no terminal como aguardando transmissão e, quando a conexão for restaurada, a transmissão será retomada.

Como funciona o Outbox do SimpleMemo?

Se a rede não estiver disponível ao enviar um memorando, criptografe-a com AES-256-GCM e salve-a em Outbox. Quando a conexão for retornada, envie-a para Resend API via Cloudflare Workers assim que o aplicativo estiver em execução e, se estiver fechado, a atualização em segundo plano do iOS ou na próxima vez que o aplicativo for aberto. Depois de enviar, exclua-o do Outbox.

O memorando Outbox é seguro?

Outbox armazenado no terminal é criptografado com AES-256-GCM. A chave de criptografia é armazenada no Chaveiro iOS, e o aplicativo a lê ao criptografar e descriptografar. A chave é uma configuração que não migra para outro terminal. A entrega de e-mail não é criptografia de ponta a ponta. Verifique também backup e detalhes de gerenciamento de chaves.

Referências e links externos

Mesmo offline, as notas escritas permanecem no terminal
Com a arquitetura Outbox + criptografia AES-256-GCM, deixe uma nota no terminal no metrô ou a bordo e envie-a quando conectado. O download é gratuito.
Baixar na App Store

Páginas relacionadas