パフォーマンス

Salesforce Commerce API は、API レスポンスをルーティングおよび提供する一元的なインフラに依存しています。このインフラは、堅牢な伸縮性とパフォーマンスを提供するために、標準的な B2C Commerce Cloud POD インフラとは別に用意されています。

現時点の地域展開は以下のとおりです。

  • 米国東部
  • EMEA (フランクフルト)
  • APAC (シドニー)
  • 日本

すべての B2C Commerce Cloud インスタンスから、Salesforce Commerce API にアクセスできます。与えられたショートコードによるルーティングの一環として、受信した API リクエストは、レルムの POD ロケーションに基づいて、展開地域のうち最も近い場所にルーティングされます。新しい地域が追加された場合、既存のショートコードのルーティングが自動的に行われます。

Salesforce Commerce API のレスポンスをキャッシングすることで、Commerce アプリケーションのパフォーマンスを向上させることができます。頻繁にリクエストされるデータをアプリケーションの最上位レイヤーにキャッシングすることでサーバーやデータベースにアクセスする必要がなくなるため、システムのレスポンスが速くなります。

キャッシングのアプローチは、次の 2 つのメインレイヤーで構成されています。

  1. クライアント側のキャッシング: Node.js SDK や Salesforce の API を用いた他のテクノロジーを使用して開発するフロントエンドアプリケーションレイヤー。
  2. サーバー側のキャッシング: API ミドルウェアやサービス実装を含むバックエンドレイヤー。

Salesforce Commerce の Shopper API では、GET リクエストのレスポンスにキャッシュヘッダーが含められる場合があります。これらのヘッダーは、リソースがプライベートかパブリックかを示します (パブリックリソースはキャッシングの対象となります)。例: Cache-Control: public

このレスポンスヘッダーの値は、ヘッドレスコマースアプリを独自に実装する際に確認できます。詳細については、B2C ヘッドレス実装ガイドを参照してください。

リソースヘッダーに含まれる情報は、パブリックキャッシュヘッダーをもつすべてのレスポンスに対してキャッシュを作成するために Commerce SDK によって使用されます。

Commerce SDK のキャッシング機能は、Web API 標準の Cache API を使用して実装されています。この API は、SDK のコアパッケージから TypeScript インターフェースとしてエクスポートされます。

キャッシングを構成するには、キャッシュマネージャーをインスタンス化し、それをオプションとして SDK クライアントの 1 つのインスタンスに渡します。

現時点では、インメモリキャッシングと Redis キャッシングを SDK で使用できます。インメモリキャッシングはデフォルトで有効になっています。cacheManager を NULL にすることで、クライアントのキャッシングを完全に無効にできます。独自のキャッシングソリューションを実装したい場合は、ICacheManager インターフェースを実装します。Commerce SDK はオープンソースなので、既存の実装が両方とも含まれており、参照できます。

レスポンスの保存と使用は、標準の Cache-Control ヘッダーで管理されます。