変更フィードを使用して参照整合性を管理する

完了

前のユニットでは、eコマース アプリケーションで必要なデータを 1 つの要求で提供することにより、データを非正規化するとパフォーマンスが大幅に向上し、RU コストが減る可能性があることを見ました。 ただし、このようにデータを非正規化した場合は、productCategory コンテナーおよび productTag コンテナー内のマスター データと、製品コンテナーの間で、参照整合性を維持する方法が必要です。

製品カテゴリと製品タグのデータが非正規化され、製品コンテナーに格納される方法を示す図。

幸いなことに、Azure Cosmos DB には参照整合性を管理できる "変更フィード" という機能があります。 変更フィードは、すべての Azure Cosmos DB コンテナー内に存在する API です。 Azure Cosmos DB にデータを挿入または更新するたびに、変更フィード機能によって、これらの変更が、リッスンできる API にストリーミングされます。 イベントがトリガーされると、変更フィードを使用して、変更されたデータに対応するコードを実行することができます。

この eコマース アプリケーションでは、変更フィードを使用して productCategory をリッスンし、変更を製品コンテナーに伝達します。 その後、2 つ目の変更フィードを使用して productTag コンテナーをリッスンし、同じことを行います。

productCategory と productTag コンテナーの変更に応答し、それらを product コンテナーにコピーして同期状態を維持する変更フィードの図。