# PubSub by Workato

PubSub コネクターは、パブリッシャーとコンシューマーが切り離された、イベントドリブンのメッセージ指向アーキテクチャを必要とする統合ソリューションの実装を可能にします。このコネクターは、確実かつ永続的な配信をサポートするメッセージングシステムを実現します。これを利用すると、あるレシピがメッセージを発行し、複数の他のレシピがワークフローを開始するトリガーとしてそのメッセージを使用するというように、レシピを連鎖させることができます。

このコネクターを使うことで、パブリッシャーとなるレシピに影響を与えることなく、コンシューマーとなるレシピを追加または修正することができます。パブリッシャーとなるレシピに影響を与えたり、レシピの変更を必要としたりすることなく、新しいコンシューマーを追加できるため、パブリッシャーとなるレシピのダウンタイムをゼロにすることができます。このような切り離しによって、レシピがよりシンプルになり、レシピの作成、テスト、保守に必要な時間が短縮されます。

# Workato での PubSub コネクターへの接続方法

PubSub コネクターの使用のために必要なコネクションはありません。レシピがやり取りするためのスキーマは Workato アカウント内に保存されているためです。

PubSub コネクターを使用するユーザーは、そのために PubSub トピック機能へのアクセスが必要になります。詳細については、カスタマーサクセスマネージャーまでお問い合わせください。

# PubSub トピックの使用方法

[Tools] > [Pub/Sub Topics] をクリックすることで、PubSub のメインページに移動できます。そのページで、自分の Workato アカウントでアクティブになっているすべてのトピックを確認できます。

PubSub のトピックを管理 PubSub のトピックを管理

Search topics (トピックの検索) 機能を使用すると、キーワードをもとにトピックを速やかに見つけられます。

# トピックの作成と管理

PubSub メッセージを使用するには、まずトピックを作成および定義する必要があります。そうすることで、メッセージの送受信にあたって想定すべき事項を、パブリッシャーもコンシューマーも一様に知ることができます。

まずは、 [New topic] を選択します。

[New topic] [New topic]

トピックを作成するときは、以下の項目を設定する必要があります。

項目 説明
Name 新しいトピックの名前。
Schema このトピックのメッセージフィールド。詳細はこちらを参照してください。

# トピックのスキーマの設定

トピックを作成するときは、そのメッセージがどのようなデータ構造になるのかを定義する必要があります。この構造はあとで編集することができます。

トピックのスキーマを定義する トピックのスキーマを定義する

項目 説明
Name 新しいメッセージフィールドの名前。
Data type ドロップダウンリストからデータ型を選択します。
Optional このメッセージフィールドが省略可能であるかを選択します。デフォルトは [No] です。
Hint このメッセージフィールドのヒントを入力します。

各項目を手動で入力するほかに、トピックのスキーマをサンプルの JSON ファイルを使って定義することもできます。

# PubSub コネクターの使用

トピックのスキーマを設定したら、New message トリガーを使ってメッセージを購読したり、Publish message アクションを使ってメッセージを発行したりすることができます。

# New message トリガーの使用

New message トリガーを使用すると、Workato 内の特定のトピックを購読することができます。そのトピックに向けて発行されたメッセージはすべて、このトリガーにより単一トリガーイベントとして取得されます。

New message トリガーの設定 トピックを選択して New message トリガーを設定

# Publish message アクションの使用

Publish message アクションを使用すると、Workato 内の特定のトピックに向けてメッセージを発行できます。そのトピックに向けて発行されたメッセージはすべて、New message トリガーにより単一トリガーイベントとして取得されます。

Publish message アクションの設定 トピックを選択し、入力項目への入力を行って Publish message アクションを設定

# PubSub コネクターを使ったシナリオのサンプル

例えば、WebToLead HTTP リクエストの受信時に Salesforce 内にリードを作成するレシピがあるとします。このレシピは、オンラインでフォームに入力したリードから連絡先データを取得するように構築されています。リードの作成後、このレシピは Postgres の分析データベースを更新します。

ここで、自社がデータベースを PostgreSQL から RedShift に変更し、メーリングリストアプリケーションとして MailChimp を使い始めるとします。その際、2通りのアプローチが考えられます。

  1. PubSub コネクターを使用せずに元のレシピを修正する

この場合は、レシピを以下のように更新する必要があります。

修正したレシピ 行を PostgreSQL ではなく Redshift に追加して購読者を MailChimp に追加するように修正したレシピ

元のレシピを変更する場合、レシピの修正、後方互換性の検証、本番環境へのプッシュが要求されることになり、レシピ開発ライフサイクルにさらなるイテレーションが必要になります。また、QA をすり抜けたバグがあると、本番レシピのダウンタイムにつながります。

  1. PubSub コネクターを使用する

PubSub コネクターとキューを利用すれば、元のレシピを以下のように構築することが可能です。まず Salesforce のリードを作成してから、あるトピックに向けてそのリードのデータを発行するのです。このレシピはコンシューマーのことを気にかける必要がないため、下流のレシピで PostgreSQL から Redshift への変更があることや、MailChimp への書き込みを行うコンシューマーが追加されることを知る必要がありません。

パブリッシャーレシピ Salesforce 内にリードを作成してリードのデータをトピックに向けて発行するパブリッシャーレシピ

対応するコンシューマーレシピのうち、リードのデータで Redshift の行を作成するものは以下のようになります。

Redshift の行を作成するコンシューマーレシピ トピックからリードのデータを使用し、そのデータを含む Redshift の行を作成するコンシューマーレシピ

対応するコンシューマーレシピのうち、リードのデータで MailChimp のリードを作成するものは以下のようになります。

MailChimp のリードを作成するコンシューマーレシピ トピックからリードのデータを使用し、そのデータを含む MailChimp のリードを作成するコンシューマーレシピ


Last updated: 2023/8/31 1:07:14