MongoDB Atlasと ObjectBox がプライベート ウォールとそのAI支援を、ゼロ接続でどのように保持するかを確認します。
ユースケース: エッジとモバイル、インテリジェント検索、支払い
業種: 金融サービス
製品およびツール: MongoDB Atlas Database、 MongoDB Atlas Vector Search、 MongoDB MCP Server、 MongoDB Search、 MongoDB Triggers、投票AI
パートナー: ObjectBox、Lgachein
ソリューション概要
従来のウォレットやバンキング アプリは、多くの場合、安定したインターネット接続に依存しています。 交通機関、地方、またはモバイル ネットワークが不安定な場所にいる場合、ユーザーは最も必要とするときに残高の確認、トランザクションの検討、連絡先の管理、送金、ウォレットへのアクセスができなくなる可能性があります。
ユーザーは、接続が短時間切断されても機能し続けるウォールを必要とします。ユーザーは、一時的なネットワーク停止時によってブロックされることなく、ウォールにアクセスし、財務タスクを完了できる必要があります。接続が戻ってくると、ウォールはユーザーのアカウントを同期する必要があります。
このソリューションは、接続が制限されている場合に不可欠なウォレット機能へのアクセスが失われるという問題に対処します。ユーザーがオフラインのときでもウォレット データを利用できるようにし、トランザクションの検討、連絡先の管理、送金などのコア インタラクションを、即時のネットワーク応答を必要とせずに継続できるようにします。また、ユーザーがオンラインとオフラインの両方でウォレット情報にアクセスし、支払いアクションを準備できるようにするAIアシスタントも含まれています。接続が復元されると、ソリューションはバックエンドと最新の変更を同期します。その核となる価値は継続性です。一時的なネットワーク停止中であっても、ユーザーは自分の資金を管理し、サポートを受けることができます。
MongoDB は、このアプローチのための柔軟なデータ基盤を提供します。 残高、トランザクション、問い合わせ、支払いリクエスト、保留中のアクションを含むウォレット情報を、統合データレイヤーでモデル化します。 統合データレイヤーにより、アプリケーションは切断中に必要なウォレットの状態を維持し、ユーザーが再接続したときに更新を整合させることができます。 同じデータ基盤により、関連するウォレット コンテキストが AI アシスタントにも提供され、接続状態と切断状態の両方でこれらのインタラクションをサポートできるようになります。
図の 1。ソリューションの高レベルのアーキテクチャ
参照アーキテクチャ
このソリューションは、エッジ デバイスとMongoDB Atlas をコア コンポーネントとして使用し、それらを外部 PSP と統合します。各コンポーネントは、アーキテクチャ全体で明確に定義されたロールを持っています。エッジ デバイスはオフライン ファーストのインタラクションをサポートし、 MongoDB Atlas は一元化された永続性とAI がアクセス可能なデータ サービスを提供し、PSP は規制された支払い操作を取り扱います。
図の 2。リファレンス アーキテクチャの概要
エッジでは、モバイルアプリケーションはローカル ObjectBoxデータベースにデータを保存し、オンデバイス推論のために Ollma を実行します。投票AIモデルは と並行して実行され、トランザクション ノート をデバイスに埋め込むため、ネットワークなしでセマンティック呼び出しが機能し続けます。 ObjectBox Sync Server はMongoDB Atlasスキーマ をミラーリングするため、アプリケーションはオンラインとオフラインで同じ論理構造の読み取りと書込みを行います。
MongoDB Atlas は、トランザクション、連絡先、リクエスト、通知、チャットなどの運用環境データを保持します。次の Atlas 機能は、そのデータにインストールされます。
MongoDB Atlas Vector Search: Vyage AI埋め込みを使用して、トランザクション ノートを意味で検索します。
MongoDB Atlasのハイブリッド検索 : 単一の
$rankFusionパイプラインでベクトル結果を語彙検索クエリーと結合します。この配置では、正確な販売名とあいまいな説明を持つ正しいトランザクションが返されます。Atlas triggers: コレクションのすべての挿入とアップデートに応答し、
transactionsPSP 転送参照でキーされた 永続的な履歴レコードをアップサートします。MongoDB MCP サーバー: は読み取りツールを公開し、 AI支援がMongoDB Atlas を直接クエリします。
外部 レプリカセットは、支払い実行と ID のためのレコードのシステムのままです。転送を認可して処理しますが、アプリはユーザー エクスペリエンスをサポートするために必要な参照とアプリケーションデータのみを保存します。
この責任の分離は、ローカルの応答性、クラウドベースのインテリジェンス、安全な支払い実行を組み合わせたものです。
アーキテクチャプロセスフロー
これらのプロセスフローは、サブシステムがアーキテクチャの回復力とインテリジェントな支援を提供するためにどのように相互作用するのかを示しています。オフライン支払いフローにより、接続が失われた場合でも重要な金融操作が継続され、ウォールの信頼性が維持されます。チャットボットが支援するフローは、ローカルインテリジェンスを活用してインタラクションを簡素化し、継続的なクラウド依存関係がなくても、対話インターフェースが応答性を維持できることを示しています。これらのプロセスを組み合わせることで、あらゆるネットワーク環境で一貫したユーザー エクスペリエンスが提供されます。
オフライン支払いフロー
このフローは、ユーザー インタラクションをリアルタイムネットワークの可用性から分離することで、財務の信頼性を確保します。トランザクションをローカルにキューで処理することで、制限された環境でもシームレスな支払いエクスペリエンスを維持し、接続が復元されたときにのみ中央プラットフォームと同期します。
図の 3。オフライン支払いシーケンス
デバイスの接続が切れてもアプリは動作し続けます。オフラインの支払いフローの場合
ユーザーが支払いを開始します。
アプリケーションは、 ObjectBox に保存されている最後に同期された残高に対して金額を検証します。
トランザクションは
local_pendingステータスでローカルにキューに入れられています。接続が戻ってくると、アプリケーションは再接続を検出し、保留中のトランザクションをすべて検索します。
保留中の各トランザクションは、決済のために PSP に提出されます。
支払い後、アプリケーションはPSP参照を保存し、トランザクションを解決済みとしてマークします。
ObjectBox Sync Server は、更新されたトランザクション状態をMongoDB Atlasに伝達します。
このパターンは、接続が失われた間でもアプリケーションの継続性を維持すると同時に、支払い解決が外部の PSP を通じてのみ行われるようにします。
チャットボットが支援する支払いフロー
この対話フローでは、ローカルのエッジベースAIを使用して、永続的なクラウド接続に依存することなくインテリジェントな支援を提供します。支払いドラフトと解決策の連絡先を有効にして、ユーザーの意向をローカルで処理し、システムの再接続時に確認されたトランザクションを安全に実行します。
図の 5。チャットボットによる支払いシーケンス
このソリューションは、 LingGraphエージェントにAI支援を構築します。チャット ボットのワークフローは次のように動作します。
このユーザーは、メニュー用に「 を に送信する20 」などのリクエストを送信します。
エージェントは、対象の連絡先を解決します。
オンラインでは、 MongoDB MCP Server を通じてMongoDB Atlasをクエリします。
オフラインでは、接続は ObjectBox から直接解決されます。
エージェントは支払いを請求し、ユーザーに確認カードを提示します。
ユーザーがトランザクションを明示的に確認するまで関数は移動されません。
確認後に、次のアクションが実行されます。
オンライン モードでは、アプリケーションは転送を PSP に提出し、拡張レコードを MongoDB Atlas に書き込みます。
オフラインモードでは、アプリケーションは後でリプレイするためにトランザクションをローカルにキューに入れます。
ユーザーは、支払いが送信またはキューに入れられると、通知を受け取ります。
このインタラクションモデルは、コアアーキテクチャによって定義されたオンラインとオフラインの実行境界を同じ維持しながら、自然言語の支払い開始と明示的なユーザーの承認を組み合わせたものです。
データモデルアプローチ
このソリューションでは、 ミラーリングされたドキュメントモデルを使用します。この設計パターンは、MongoDB Atlasおよびオンデバイスの ObjectBox ストア全体で同じウォール エンティティとドキュメント構造を維持します。モデルは、Bian 準拠の外部 PSP 上に構築されたオフライン ウォールをサポートしています。
PSP は支払い実行と ID のレコードのシステムであり続けますが、アプリケーションはユーザー エクスペリエンスをサポートするために参照とアプリケーションレベルの機能強化を保存します。このエンティティには、メモ、セマンティック埋め込み、同期またはライフサイクルの状態が含まれます。 MongoDB Atlasと ObjectBox で同じ論理スキーマを使用することで、アプリケーションはオンラインとオフラインの両方で一貫して動作できます。
以下のコレクションは、このソリューションがアプリケーションデータをモデル化してオフライン支払いエクスペリエンスをサポートする方法を示しています。
コレクション | 説明 |
|---|---|
| 残高や認証情報を直接保存するのではなく、参照によって PSP にキー付けされた完了済みおよび保留中のマネー移動を保存します。 |
| Atlas のみが検索可能な履歴を保持します。 Atlas trigger は、PSP参照をキーにして、ここで解決されたすべての転送をアップサートするため、デバイス同期はフラグメント化できない安定した組織に対してハイブリッド検索が実行されます。 |
| ユーザーが金銭の支払いやリクエストができる人を表し、PSP 配置の参照からステートメント レコードに解決されます。 |
| 作成から決済または紛争まで、そのライフサイクル全体にわたって支払いリクエストを追跡します。 |
| キューに入れられたアクションや完了したアクションのステータス更新を含む、ユーザー向けの支払いとウォールのイベントを提供します。 |
| 所有ユーザーにスコープを設定し、ウォール エクスペリエンスにリンクされた、 AI支援のチャット履歴を保存します。 |
walletTransactionsHistory を除くすべてのコレクションはObjectBoxデータベースをミラーリングします。 MongoDB Atlas は履歴データを保持し、ハイブリッド検索に必要なベクトルインデックスとテキスト インデックスを強化します。
以下は、walletTransactionsコレクションに保存されているウォール トランザクションのドキュメントモデルです。これは、外部PSP を通じて送受信された単一の支払いを表します。このドキュメントでは、転送を追跡するために必要な運用データと、検索、オフライン、リプレイ、 AI支援に必要なエンタープライズ データ(埋め込み、同期状態)がキャプチャされています。
{ "_id": { "$oid": "unique_id" }, "leafyPayTransferReference": "string", "ownerPartyRef": "string", "counterpartyArrangementReference": "string", "amount": "number", "currency": "string", "note": "string", "noteEmbedding": [ "number", "..." ], "direction": "sent | received", "leafyPayStatus": "pending | settled | failed | exception", "localSyncStatus": "local_pending | synced", "createdAt": { "$date": "ISODate" }, "settledAt": { "$date": "ISODate" } }
このモデルは運用コンテキストと豊富性を統合し、クラウドとデバイス環境全体での配置を簡素化します。アプリケーションは保留中のアクティビティをレンダリングし、オフラインの書き込みを再生し、単一の読み取りを使用してAI が支援するトランザクションの検索をサポートします。これらの操作を実行できるのは、同期状態(localSyncStatus)、解決状態(leafyPayStatus)、セマンティック検索ベクトル(noteEmbedding)が同じドキュメントにあるためです。
機密性の高いトランザクション実行はPSP で引き続き実行されますが、 MongoDB Atlasと ObjectBox は、応答性、検索、ユーザー エクスペリエンスに必要なウォールアプリケーションデータのみを保存します。実稼働システムでは、より厳格な検証、アクセス制御、監査するログを使用してこれらのコレクションを拡張できます。
ソリューションのビルド
ソリューションを 2 つの段階で配置して、ローカルで実行します。まず、SSO、同意、支払い実行を処理するPSP を起動します。次に、アプリケーションUI、バックエンドサービス、Object Box、Ollma、Vyage AI、同期コンポーネントを実行する Leafy Watch を起動します。
ローカル配置の場合は、両方のリポジトリを並行してクローンします。
GitHub ローカル デプロイメント の指示に従う
モデルを配置する
復元力のあるオフラインファーストのエクスペリエンスをサポートするために、コンテナ化されたサービスのコレクションとしてソリューションを配置します。 図に示すように、フロントエンド、FastAPI バックエンド、MongoDB Atlas がクラウド接続パスを取り扱い、ObjectBox Sync サーバーがデバイス上の ObjectBox ストアを Atlas に橋渡しします。
この設定により、切断中に即座に応答するためにデータをローカルに保存し、接続が再開されると、キューに入れられたトランザクションを自動的にクラウドにフラッシュできます。このコンテナ化されたモデルを使用して、エッジ デバイスと Atlas クラスターの両方で一貫した論理データ構造を維持します。
環境を設定する
レプリカセット内の大多数のリポジトリを並行してクローンします。
git clone https://github.com/mongodb-industry-solutions/leafy-wallet.git git clone https://github.com/mongodb-industry-solutions/sec-fsi-pci-dss.git
起動する前に、フロントエンドとバックエンドの個別の環境ファイルを構成します。これらのファイルは、重要な接続文字列、 API認証情報、およびサービス エンドポイントを管理し、フロントエンド、バックエンド、および外部サービス間の安全な通信を可能にします。
frontend CLIENT_ID=<id> CLIENT_SECRET=<secret> PSP_BASE_URL=http://host.docker.internal:8081 PSP_FRONTEND_URL=http://localhost:8083 APP_BASE_URL=http://localhost:8080 REDIRECT_URI=http://localhost:8080/api/auth/callback LOOKUP_DIGEST_KEY=<key> backend MONGODB_URI="<your-atlas-connection-string>" DATABASE_NAME="<db-name>" APP_NAME=leafy-wallet-backend OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_EMBEDDING_MODEL=nomic-embed-text LOOKUP_DIGEST_KEY="<key>"
フロントエンド構成は、コンテナ化されたアプリがローカルで実行中PSP PSP_BASE_URLにアクセスできるように、8081 を http://host.docker. internal: } に点必要があります。
Leafy Watchアプリケーションの起動
レプリカセットがを実行中いる後、 MongoDB ベクトル検索インデックスを作成し、 Docker Composer で LeafyValue を起動します。
cd leafy-wallet/backend uv run python scripts/create_vector_index.py cd .. docker compose up -d --build
Leafy Watchは 、 http://localhost: }8080 で開始され、バックエンド、 ObjectBox、Ollma、同期サービスはコンテナ内で実行中。
両方のスタックが を実行中たら、ブラウザで Leafy Watch を開き、SSO を続行します。
キーポイント
接続が低下しても、ウォール機能を使用し続ける: ネットワーク アクセスを必須ではなく、拡張機能として扱います。 MongoDB Atlasがサポートするローカル ストアは、短時間の切断中に残高、トランザクション、連絡先、リクエスト、チャット フローを保持し、デバイスが再度オンラインになると調整します。
MongoDB Atlasでアプリケーションコンテキストを保持し、PSP に支払いを残ります。Atlas は、ユーザー エクスペリエンスを形成するエイリアス、ノート、同期状態、埋め込みを保存しますが、支払いプロバイダーは ID、認可、および解決のレコードのシステムを維持します。この分裂、エクスペリエンスレイヤーは調整された実行に取り込まれることなく、柔軟な状態に保たれます。
デバイスとクラウドで同じ論理データモデルを読み書き: MongoDB Atlas のコレクション構造を埋め込みストアにミラーリングし、バックグラウンドで変更を同期します。両側で同一のスキーマを使用することで、オフライン機能で通常必要とされる変換レイヤーが不要になり、アプリケーションコードが接続性によって分岐することがなくなります。
運用コンテキストとエンティティをドキュメントモデルでまとめて維持 : 転送詳細、メモ、同期状態、埋め込みを同じドキュメントに保存して、読み取りを簡素化し、不可分的な更新をサポートし、 AI支援エクスペリエンスでデータを容易にします。
ローカルの応答性とクラウドインテリジェンスを組み合わせると、 MongoDB Atlas Vector Search、 MongoDB MCP Server 、およびオンデバイスストレージにより、支援が自然言語トランザクションの検出と支払いドラフトを処理できるようになります。デバイスがオンラインかどうかにかかわらず、ユーザーは同じ動作をします。
作成者
Felipe Trejos, MongoDB
Miguel Aréjula Aísa, MongoDB