# Webhookゲートウェイの制限

リアルタイムトリガーを使用したり、Webhookコネクタを使用したり、コネクタSDKでWebhookトリガーを作成する場合、イベントはジョブに変換される前に、WorkatoのWebhookゲートウェイに送信されます。 WorkatoのWebhookゲートウェイには、ワークスペース全体に適用される2つの制限があります:

  1. レート制限 - 特定の時間間隔で送信できるイベントの数
  2. バイト制限 - 特定の時間間隔でWebhookイベントが含むことができる累積メモリの量

WARNING

これらの制限は、ワークスペース内のすべてのリアルタイムトリガーに適用され、レート制限とバイト制限の両方の割り当てを消費します。

# レート制限

Webhookゲートウェイには、次のレート制限があります:

  1. 1時間あたり72,000のイベント
  2. バーストで18,000のイベント

Webhookゲートウェイは、次のメカニズムを持つ漏斗バケットアプローチに従います:

  • バースト割り当てで18,000のイベントから開始します。
  • 1時間あたりの72,000のイベントは、1秒あたり20のイベントに分割されます。
  • 各秒に受信したイベントは、割り当てられた20のイベントを消費します。
    • 1秒あたり20以上のイベントを受信した場合、バースト割り当てを消費し始めます。
    • 1秒あたり20未満のイベントを受信した場合、余剰分はバースト割り当てに追加されます。
    • バースト割り当ては18,000のイベントを超えることはありません。
  • その秒とバースト割り当てのクオータが残っていない場合、Webhookゲートウェイは429のレスポンスで応答します。

429のレスポンスの処理

429のリクエストは、すべての顧客のWebhookゲートウェイの安定性を保つために使用されます。 429の処理に関する業界のベストプラクティスは、Webhookが最終的に受け入れられるまでWebhookを再試行することです。 高いボリュームのシナリオでは、Webhookゲートウェイの制限は顧客ごとに調整され、商業条件と承認の対象となる場合があります。

429のレスポンスの処理について詳しくはこちらをご覧ください。

いくつかの例を挙げて説明しましょう

# 例1

1秒間に18,020のイベントを受信した場合、すべてのイベントは受け入れられますが、バースト割り当ては消耗されます。 次の秒には、429のレスポンスが返される前に、さらに20のイベントを受信できます。

# 例2

1秒間に18,020のイベントを受信した場合、すべてのイベントは受け入れられますが、バースト割り当ては消耗されます。 その後、毎秒20のイベントを受信し続けると、イベントの安定したレートが20のイベント/秒未満になるまで、バースト割り当ては再補充されません。


# バイト制限

Webhookゲートウェイには、次のバイト制限があります。これは、すべてのWebhookで使用できる総メモリを表します:

  1. 1分あたり30MB
  2. バーストで30MB

バイト制限は、レート制限と同じように考えることができます。

429のレスポンスの処理

429のリクエストは、すべての顧客のWebhookゲートウェイの安定性を保つために使用されます。 429の処理に関する業界のベストプラクティスは、Webhookが最終的に受け入れられるまでWebhookを再試行することです。 高いボリュームのシナリオでは、Webhookゲートウェイの制限は顧客ごとに調整され、商業条件と承認の対象となる場合があります。

429のレスポンスの処理について詳しくはこちらをご覧ください。


# 埋め込みパートナー向けの追加情報

顧客にコネクタを配布するために共有コネクタ機能を使用している埋め込みパートナーの場合、顧客のワークスペースにある静的Webhookトリガーには独自のWebhookレート制限があります。たとえば、顧客AのワークスペースへのWebhookイベントは、顧客BのワークスペースのWebhookレート制限にはカウントされません。


# Webhookゲートウェイの制限が超過された場合の処理方法

レート制限を超過すると、WorkatoのWebhookゲートウェイは429のエラーで応答します。さらに、WorkatoのWebhookゲートウェイは、次の5つのヘッダーを含むレスポンスを送信して、次のイベントを正常に送信できるタイミングを理解するのに役立ちます。

  • Retry-After - 同じWebhookを受け入れる前にリトライする秒数
  • X-Rate-Limit-Remaining - 429が返される前に送信できるイベントの数
  • X-Rate-Limit-Reset - イベントバースト割り当てが再補充されるまでの秒数
  • X-Byte-Limit-Remaining - 429が返される前に送信できるすべてのWebhookの累積データ量
  • X-Byte-Limit-Reset - バイトバースト割り当てが再補充されるまでの秒数

APIはこれらのヘッダーを使用して、Webhookイベントのスロットル方法とタイミングを理解することができます。


Last updated: 2024/2/13 16:59:53