1/25
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Streaming API
Salesforceのリアルタイム通知API。HTTP/1.1 + CometDを使用。古いが簡単に使える。
Pub/Sub API
Salesforceの新しい双方向リアルタイムAPI。gRPCとHTTP/2ベース。高性能・高スケーラビリティ。
CometD
Streaming APIで使うJavaScriptライブラリ。ブラウザや軽量クライアント向け。/cometd/エンドポイントに接続。
gRPC
Pub/Sub APIで使用。双方向・ストリーミング対応の高速通信プロトコル。低レイテンシとバイナリ通信が特徴。
PushTopic
SOQLで定義した通知ルール。例: SELECT Id, Name FROM Account。Streaming API専用。
Platform Event
Salesforceで定義できるカスタムイベント。ApexやFlowから発行可。外部で購読可能。
Change Data Capture (CDC)
標準オブジェクトやカスタムオブジェクトのデータ変更をイベントとして通知する機能。
Replay ID
イベントごとに付与される一意な連番。過去のイベントを再取得するために使う。
Replay(リプレイ)
失われたイベントを再取得する仕組み。最大72時間までの過去イベントにアクセス可能。
-2(Replay)
新しいイベントのみを購読(デフォルト)。接続時点より前のイベントは含まれない。
-1(Replay)
最新のイベント1件を購読開始地点とする。
CUSTOM Replay ID
保存しておいたReplay IDを使って、イベントをその時点から再購読する。
Replay ID 保存方法
受信したReplay IDをデータベースやファイルに保存し、次回接続時にそのIDから購読再開。
Pub/Sub API 対応イベント
Platform Events、Change Data Capture(CDC)、Generic Events。PushTopicは非対応。
Streaming API 対応イベント
PushTopic、Platform Events、Change Data Capture(CDC)すべて対応。
Replay ID 保持期間
通常は最大72時間。それを超えたReplay IDにはアクセスできない。
冪等性(べきとうせい)
同じイベントを何度処理しても結果が同じであること。再処理時の安全性を確保。
Experience Cloud(旧Community)
外部ユーザー向けのポータルサイト。リアルタイムAPIとは関係ない概念。
リプレイが必要なとき
購読中に切断された場合や、障害などでイベントを取りこぼしたとき。
Pub/Sub API ReplayPreset
"EARLIEST", "LATEST", "CUSTOM"が指定可能。"CUSTOM"はReplay IDを明示。
Streaming API JavaScript例
cometd.subscribe('/event/OrderPlaced_e', msg => console.log(msg.payload));
Pub/Sub API Node.js例
grpcクライアントでsubscribe({topicName, replayPreset})。双方向ストリーミングに対応。
PushTopic 作成例(Apex)
PushTopic pt = new PushTopic(); pt.Name = 'AccountUpdates'; pt.Query = 'SELECT Id FROM Account'; insert pt;
Replay処理の実装ポイント
Replay IDの保存、再接続時のID読み込み、冪等な処理設計が必要。
Streaming APIの制限
接続数制限、HTTP/1.1制限、大量データ処理に不向き。ブラウザ向き。
Pub/Sub APIの利点
gRPCによる高速通信、バルク処理、再接続制御がしやすい。サーバー側の制御性が高い。