Outboxアーキテクチャとは
Outboxアーキテクチャ(Outboxパターン)は、メッセージをローカルにキューイングし、ネットワーク接続が回復した時点で自動送信する設計パターンです。Obsidian連携シンプルメモでは、この仕組みにより地下鉄や機内などオフライン環境でもメモが失われません。
Outboxアーキテクチャは、分散システムにおけるメッセージ配信保証パターンです。送信者はメッセージをまずローカルのOutbox(送信箱)に永続化し、バックグラウンドプロセスがOutboxを監視して、ネットワーク接続時に順次送信します。送信成功を確認後、Outboxからメッセージを削除します。これにより「ネットワーク障害時のデータ損失」と「重複送信」の両方を防止します。モバイルアプリではオフラインファースト設計の基盤技術です。
Outboxパターンの3つの要素
シンプルメモの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に保管し、アプリが暗号化・復号時に読み出します。鍵は別の端末へ移行しない設定です。メール配送はエンドツーエンド暗号化ではありません。バックアップと鍵管理の詳細も確認してください。
参考文献・外部リンク
- Transactional Outbox パターン — Microsoft Learn
- Outbox Pattern — Wikipedia