この記事では「 Event-Driven Architecture with Salesforce and MuleSoft Anypoint Platform」の内容を参考に、SalesforceのCDC(Change Data Capture)とMulesoftのAnypoint Platformを組み合わせて、イベント駆動アーキテクチャによる外部システムとの(ほぼ)リアルタイムな同期機能を試作します。
前提
- SalesforceのDeveloper Edtion環境を持っていること
- Mulesoft Anypoint PlatformのFree Trialアカウントを持っていること
※ Design Centerで開発を行うため、ローカル環境へのAnypoint Studioのインストールの必要はありません。
SalesforceでCDC(Change Data Capture)を設定する
まずはSalesforceのDeveloper EdtionでCDC(Change Data Capture)の設定を行います。
SalesforceでのCDCの設定はこれだけです。これで取引先(Account)オブジェクトのCRUDの変更が公開された状態となります。
通知を受け取るAnypoint Platformのアプリケーションを作成する
次にMulesoftのAnypoint Platformに先ほど設定したSalesforceのCDC通知を受け付けるアプリケーションを作成します。
-
Anypoint Platformで「Design Center」→「Create」→「Create New Application」を選択します。
-
適当なアプリケーション名を入力して「Create」ボタンを押下。アプリケーションを作成してください。
※ 初期設定は行わず「Go straight to canvas」リンクでキャンバスを表示してください。
-
Triggerを選択し、以下を設定します。
- Trigger:Salesforce Connector
- Operation:Replay Channel
- 次にConfigurationで以下の設定を行ってください。
- Streaming Channel:/data/AccountChangeEvent ※ 参考
- Replay Option:From Replay Id
- Reply Id:-1
-
「Click here to set it up」リンクを押下して、Salesforceの共通設定を行います。
Connection → Connection typeで「Basic Username Password」を選択したのち、Developer EditionのUsername、Password、Security Tokenを設定してください。
これでMuleのアプリケーションの作成が完了しました。最後に右上の「Run」ボタンを押下してアプリケーションを起動します。
動作確認
では、動作確認をしてみましょう。Salesforceで取引先を更新してみてください。
Anypoint PlatfromのDesign Centerに戻ってください。フローにグリーンのラインが入れば正常に動作しています。
※ 多少タイムラグが発生する場合があります。
SalesforceコネクタのOutputを確認してみましょう。変更されたデータが連携されていることが確認できます。
まとめ
SalesforceのCDC(Change Data Capture)とMulesoftのAnypoint Platformを組み合わせた簡単なイベント駆動型のデータ連携の方法を説明しました。今回のサンプルはとても簡単なサンプルになっていますが、Anypoint PlatformのExchangeで提供する様々なモジュールを利用することで、Salesforceと外部システムとのイベント駆動型の(ほぼ)リアルタイム連携を、コーディングを最小限に抑えた形で実現できることが想像できるかと思います。
おしまい