用語集 — 技術

Outboxアーキテクチャとは

Outboxアーキテクチャ(Outboxパターン)は、メッセージをローカルにキューイングし、ネットワーク接続が回復した時点で自動送信する設計パターンです。Obsidian連携シンプルメモでは、この仕組みにより地下鉄や機内などオフライン環境でもメモが失われません。

定義

Outboxアーキテクチャは、分散システムにおけるメッセージ配信保証パターンです。送信者はメッセージをまずローカルのOutbox(送信箱)に永続化し、バックグラウンドプロセスがOutboxを監視して、ネットワーク接続時に順次送信します。送信成功を確認後、Outboxからメッセージを削除します。これにより「ネットワーク障害時のデータ損失」と「重複送信」の両方を防止します。モバイルアプリではオフラインファースト設計の基盤技術です。

Outboxパターンの3つの要素

ローカル永続化
メモはまずデバイス上のストレージに保存されます。ネットワークの状態に関係なく、ユーザーの操作は即座に完了します。シンプルメモではAES-256-GCMで暗号化して保存します。
バックグラウンド監視
iOSのバックグラウンドタスクとNWPathMonitor(ネットワーク状態監視API)を使用して、接続回復を自動検出します。ユーザーがアプリを閉じていても、OSレベルで監視が続きます。
確認付き削除
Cloudflare Workers + Resend APIからの送信成功レスポンスを確認した後にのみ、OutboxからメモデータをDelete します。APIエラー時はリトライし、メモが消失することはありません。

シンプルメモのOutbox実装

Obsidian連携シンプルメモのOutboxは、単なるオフラインキューではなく、セキュリティとUXを両立させた設計です。メモの保存時にAES-256-GCMで暗号化し、送信時にのみ復号。送信完了後はOutboxデータを即座に完全削除します。ユーザーにはOutboxの存在すら意識させません。送信ボタンを押した瞬間に「送信完了」UIを表示し、実際の送信はバックグラウンドで非同期に行います。

実例:地下鉄でのメモ送信

シナリオ

1. 地下鉄の車内でアイデアをメモに入力し、送信ボタンをタップ

2. アプリは「送信完了」を表示(ユーザー体験としては即完了)

3. 裏側ではメモをAES-256-GCMで暗号化してOutboxに保存

4. 地上に出てLTE/Wi-Fiに接続 → NWPathMonitorが接続を検出

5. Outboxからメモを取り出し、復号してCloudflare Workers APIに送信

6. Resend APIが受信者メールアドレスへ配信 → 成功レスポンスを確認

7. Outboxの暗号化データを完全削除

よくある質問(Outboxアーキテクチャ)

Outboxアーキテクチャとは何ですか?

メッセージをローカルのキュー(送信箱)に保存し、ネットワーク接続時に自動送信する設計パターンです。オフライン環境でもデータを失わず、接続回復時に確実にデータを届けます。

シンプルメモのOutboxはどう動きますか?

メモ送信時にネットワークが利用できない場合、AES-256-GCMで暗号化してOutboxに保存。接続回復を自動検出し、Cloudflare Workers経由でResend APIに送信。送信完了後にOutboxデータを削除します。

Outboxのメモは安全ですか?

端末内に保存するOutboxはAES-256-GCMで暗号化します。暗号鍵はiOSのKeychainに保管し、アプリが暗号化・復号時に読み出します。鍵は別の端末へ移行しない設定です。メール配送はエンドツーエンド暗号化ではありません。バックアップと鍵管理の詳細も確認してください。

参考文献・外部リンク

オフラインでもメモは絶対に失わない
Outboxアーキテクチャ+AES-256-GCM暗号化で、地下鉄でも機内でもメモが確実に届きます。ダウンロードは無料。
App Store からダウンロード

関連ページ