3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プラットフォームイベント、変更データキャプチャ メモ

Last updated at Posted at 2021-01-05

プラットフォームイベントと変更データキャプチャの違いに関してメモ
(勉強中です。)
https://developer.salesforce.com/events/webinars/data-linkage-201908

プラットフォームや変更データキャプチャを使えば、
SFDCと外部システムの連携ができます。

<どんな機能を持っている?>
■変更データキャプチャ
 ・特定のDBに変更があった際に、検知
 ・イベントバスへチャネル作成
 ・購読/配信の仕組み

■プラットフォームイベント
 ・購読/配信の仕組み

ざっくり言うと、
変更データキャプチャ≒Trigger+プラットフォームイベントで実現可能。
(厳密には違う。)

※以下イメージ
■変更データキャプチャの機能
 ・特定のDBに変更があった際に、検知 →Triggerで代替
 ・イベントバスへチャネル作成    →Triggerで代替
 ・購読/配信の仕組み         →プラットフォームイベント

例えば、
ユーザがSFDC画面からデータを入力し保存、
保存した結果、非同期通信で外部システムへ通知したい場合。

image.png

<前提>
まず外部システムは、イベントを購読する必要がある。
購読したシステムに対して、イベントを配信するため。
image.png

<処理の流れ>
ユーザがUI(LWCやVFなど)からデータを入力し、保存。
そのタイミングでApexのコントローラ側のメソッドが走り、DBに対してDML発行

image.png

それ(=DBの変更)を受けて、
ApexTriggerで検知し、Bus(=イベントバス)に対してイベントデータを生成することも可能。
image.png

イベントバスは、イベントの生成を受けて、
事前に購読した外部システムに対して、イベントを配信する。
image.png

で、ここがプラットフォームイベント
image.png

ここが、変更データキャプチャです。
image.png

留意事項
・大量データはBulkでやりましょう
・プラットフォームイベントは非同期のため、同期処理したい場合にはSOAP/RESTを選択しましょう。
・外部システムは、イベントを購読できる必要があります。
・同時接続システムや24hの配信数に制限あり。(ガバナ)
https://developer.salesforce.com/docs/atlas.ja-jp.platform_events.meta/platform_events/platform_event_limits.htm

構築方法
・変更データキャプチャ
 →設定から変更データキャプチャを検索し、対象オブジェクトを選定してSFDC側は完了

・プラットフォームイベント
 →設定からプラットフォームイベントを検索し、イベントオブジェクト(__e)の作成が可能。イベントオブジェクトに対して項目追加やTriggerの構築が可能。

・Pub/Subモデルとは?(Publish=配信、Subscribe=購読)
事前に購読した人に向けて配信するモデルを指しており、何かソリューションを指しているわけでない。ただの概念。

LINEを思い浮かべるとわかりやすいかもなのだが、
グループチャットに100人いたとして、
誰かがチャットを投稿した際に、みんな受信/成功するまで待つ(=同期)場合に、
時間がものすごいかかったり、処理が重くなるかと思われる。
そういったときに、非同期の相手の受信を待たない通信が最適となる。
つまり、受取手にとって多少タイムラグがあるが、送ったら送りっぱなしとなる。
また、グループチャットに参加した人は購読すれば配信を受けられる点で、配信側に手が入らない。
システムでいうと、受信したいシステムが増える場合のスケーラビリティがある、と言える。

<PubSubモデル>
グループチャットを色んな人が購読する。(=グループチャットに参加する。)
誰かが発言すると、購読している人(=グループチャットに参加している人)に対して、配信する。(=チャットを送る。)
https://dev.appswingby.com/gcp/pub-sub%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%87%E3%83%AB%E3%80%9Ccloud-pub-sub%E3%82%92%E4%BE%8B%E3%81%AB%E3%80%9C/

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?