Atlas Change Streams と Atlas Triggers を使用してリアルタイム更新を活用し、高速で信頼性の高いオムニチャネル注文をビルドします。
業種: 小売
製品: MongoDB Atlas、Change Streams、MongoDB Atlas Triggers
ソリューション概要
今日のカスタマーは、オンラインとオフラインのチャンネルを統合したシームレスなショッピング体験を期待しています。しかし、小売業者は、すべてのタッチポイントでコンシステントな体験を提供するこうしたオムニチャネルソリューションの実装に苦労しています。
「オンライン購入、店舗受け取り(BAPIS)」、「オンライン購入、自宅配送」などの便利なオプションを提供することは、競争力を維持する上で不可欠ではあるしている一方で、オムニチャネル戦略の実施には、新たな技術的課題が伴います。小売業者は、リアルタイムでの可視性を提供し、動的なトラフィックパターンを処理し、すべてのカスタマーとのタッチポイントで最新の統合を可能にする柔軟なシステムを必要としています。
このソリューションは、MongoDB Atlas を使用してオムニチャネルのeコマースウェブサイトをビルドする方法を示しています。デモでは、ユーザーが希望する配送方法(BOPIS または宅配)を選択し、配達までの注文進捗をリアルタイムで追跡できる顧客体験を紹介します。MongoDB の主要機能である Change Streams、Atlas Triggers、柔軟な document model を活用して、堅牢でスケーラブルなオムニチャネル注文システムを作成する方法をご紹介します。
参照アーキテクチャ
このソリューションの主な機能として、MongoDB の Change Streams と Atlas Triggers を活用し、複数のアプリケーション間でのリアルタイムデータによるオペレーションを実現します。このアーキテクチャは、Real-Time Apps と MongoDB Atlas という 2 つの主要コンポーネントで構成されています。
Real-Time Apps には、 eコマース、配送センター、倉庫、在庫アプリなど、データベースの変更に応答するすべてのアプリケーションが含まれます。
MongoDB Atlas 内でのワークフローは次の通りです。
アクションにより、例として注文ステータスの更新などのデータの変更が生成されます。
イベントはOrdersコレクションに登録されています。
これらの変更はオペレーション ログ(oplog.rs)に記録されます。
Change Streams API はこれらの変更をモニターします。
アーキテクチャのニーズに基づいて、次のことを選択できます。
アプリケーション側で更新を実行する。
Atlas Functions を使用して自動タスクをトリガーします。
現在の実装を超えて、このアーキテクチャは、次のようなさまざまなリアルタイムのシナリオにおける基盤を提供します。
リアルタイム通知: 注文受け取り準備完了の自動顧客アラート。
反応的なシステム: 自動補充機能を備えたスマートな在庫管理。
イベント駆動型アーキテクチャ: 任意の Kafka 統合を用いたマイクロサービスのリアルタイム同期。
変更データキャプチャ:システム全体の製品価格を即時に更新します。
リアルタイム分析: 機械学習モデルを使用して不正リスクを即座に再計算します。
図1 . データベースの変更は、イベントとして oplog に記録されます。Change Streams API は変更を監視し、監視対象のイベントを検出し、アプリケーションまたは Atlas Triggers でリアルタイムの応答をトリガーします。
このプロセスのシンプルさは、MongoDB のレプリケーション機能と、すべてのデータベース変更を記録する基礎の操作ログ (oplog) によって実現されています。このメカニズムにより、Change Streams は、余計なレイヤーや複雑さを追加することなく、アプリケーションに更新を効率的にプッシュできます。レプリケーションは、主にノード間でデータの複数のコピーを維持することにより高可用性を確保し、リアルタイムでの更新を可能にします。アプリケーションは、さまざまなスコープ(コレクション、データベース、またはクラスター全体)での変更をモニターし、集計フレームワークを使用して特定の変更をフィルターできます。
データモデルアプローチ
開発者がアルゴリズムを作成する際、複雑さが必ずしも混乱を意味するわけではありません。コードの行数が多いことが、必ずしも優れた解決策になるとは限りません。重要な点はシンプルさです。シンプルなソリューションは理解しやすく、実装も速いため、本当に重要なこと、つまりイノベーションに集中できます。
このソリューションのデータモデルは、製品と注文という 2 つの主要なコレクションを中心に構築されています。各コレクションはフィールド : 値形式を使用し、保存されたデータの整理された表現を提供します。各コレクションがどのように構成されているのか見てみましょう。
製品コレクション
ID、名前、一意の製品識別子(SKU など)を含む包括的な製品情報を保存します。
分類フィールドが含まれます(masterCategory、subCategory、searchType)。
金額と通貨フィールドを持つ価格設定用のネストされたオブジェクト機能を備えています。
自動補充ステータスや基本色など、製品固有の属性が含まれています。
在庫関連のフィールドと製品メタデータを管理します。
図 2. 製品コレクションの MongoDB ドキュメント
注文コレクション
注文およびユーザーの一意の識別子を用いて注文の詳細を追跡します。
各注文に対する製品の配列が含まれています。
注文の状態の進行をタイムスタンプ付きで記録する status_history 配列を備えています。
注文タイプを区別します(オンラインで購入して店舗で受け取るか、またはオンラインで購入して自宅に配送)。
各注文に対して固有の発送先住所を保存します。
配送タイプに基づいてステータス ワークフローを適用します。
BOPIS 注文には、「処理中 → 受け取り準備完了」などのステータスが表示されます。
宅配の注文は、「処理中」→「配達準備完了」→「倉庫から受け取り」→「輸送中」→「配達済み」のような状態に進みます。
このモデルの価値は、その柔軟性にあります。データ構造をユーザーのワークフローに合わせて進化させることで、ビジネスは現在のニーズと起こり得る将来の課題の両方に対して、容易に適応できます。たとえば、MongoDB の製品ドキュメントには price という名前のフィールドが含まれており、このフィールドは複数の通貨での表現(例: 12 USD など)を可能にする値の配列を保持します。
図 3. 注文コレクションの MongoDB ドキュメント
ソリューションを構築する
このソリューションの構築は、主に 3 つの主要なステップに分けられます。
デモデータベースを複製する
Atlasアカウント内でクラスターをプロビジョニングし、デモに必要なデータをデータベースに入力します。すべての必要なデータとメタデータを含んだダンプファイルはリポジトリ内 に格納されており、mongorestore コマンド 1 つで迅速にレプリカを作成できます。
注文ステータス trigger を追加
注文コレクションの挿入および更新イベントのリスニングを行うデータベーストリガーを作成します。これは、github リポジトリからコピーできる関数を実行します。このデモのユースケースは、eコマースウェブサイトから注文するカスタマーの体験に焦点を当てているため、この trigger は、注文が配達済みとしてマークされるまで各ステージで注文を進め、10 秒ごとに注文ステータスを更新するために必要なバックエンドのプロセスを模倣するために役立ちます。私たちが模倣するバックエンド プロセスには、注文を管理する倉庫作業員、荷物を配達する郵便サービス、注文を梱包する店舗従業員などがあります。
アプリのフロントエンドを設定
GitHub リポジトリをローカルマシンにクローンしてデモコードを取得し、環境変数を設定し、依存関係をインストールします。最後に、アプリをローカルで実行するには、 http://localhost:8080 /cart にアクセスしてください。
コードサンプル、構成ファイル、チュートリアル動画を含む総合的な実装の詳細については、GitHub リポジトリをご覧ください。
キーポイント
このソリューションは、オムニチャネルの小売アプリケーションに適した MongoDB の 3 つの主要機能を示しています。
柔軟性と速度: MongoDB の柔軟な document model は、開発者にとって直感的であるだけでなく、実装と実行が容易です。この柔軟性により、ビジネスは変化に迅速に適応でき、貴社のソリューションは容易に進化できます。その結果、開発者は複雑なデータ構造を扱うのではなく、ソリューションの構築に専念できるため、市場投入までの時間が短縮され、コンシステントなオムニチャネル体験が実現します。
リアルタイム機能: Change Streams と Atlas Triggers のような機能は、動的なリアルタイムデータ処理を通じて、注文追跡や在庫更新といったタスクに不可欠であり、顧客とのインタラクションを強化します。
スマートなアーキテクチャ: MongoDB の高可用性とスケーラブルなアーキテクチャは、オムニチャネル時代において不可欠な相互接続された顧客体験を提供するための強固な基盤を形成します。Change Streams や Atlas Triggers のようなツールは、余計なレイヤーを必要とせずにアプリケーションに簡単に統合できるため、MongoDB の基礎のアーキテクチャを活用して、これらの変更を容易に実装できます。
これら各機能は、パフォーマンスと信頼性を維持しつつ、ビジネスニーズに応じてスケーリングできる堅牢なオムニチャネル注文システムの構築に貢献します。
使用した技術と製品
MongoDB 開発者データ プラットフォーム
著者
Angie Guemes, MongoDB
Florencia Arin, MongoDB