10 ポイント 投稿者 xguru 2021-07-14 | 5件のコメント | WhatsAppで共有
  • システム間の連携のために WebHook を利用するが

→ サーバーダウン時の問題や、一時的なものであるため誤処理や損失が起きやすい

→ 問題をなくすために Kafka などでバッファリングすることはできるが面倒

  • 2つのシステムの同期のために /events エンドポイントを提案

→ Stripe が使用中の API

→ 過去30日間のすべての作成/変更/削除に対するイベントを取得できる

→ ポーリングによって、必要なタイミングで必要なだけ、何度でも取得することが可能

→ ロングポーリングにすれば負担も減らせそう

5件のコメント

 
haya0206 2021-07-14

Twitch APIもWebhooksからEventSubへ移行されるそうですし、流行なんでしょうね..

 
xguru 2021-07-14

2つのシステム間の同期は、これまでも議論され続け、変更されてきたテーマではあるのですが。(論争も多いですし)

Stripe の /events API が興味深かったので、記事のリンクを持ってきて投稿してみます。

私はサーバーに負担をかける方式は好きではないので、そこまでという感じではありますが……

とはいえ、見逃してはいけない決済情報を扱う Stripe としては、あれがデータの信頼性を高められる方法なのではないかと思いますね。

 
yolatengo 2021-07-23

Kafka のような mq を使うのと比べて、どんな点がより良いのか……よく分かりませんね。

 
xguru 2021-07-23

Kafka は内部で制御可能なシステム同士には適していますが、

ここではそもそも別個の外部開発者や外部システムとのアクセスや連携がしやすいことを主題にしているようです。

 
yolatengo 2021-07-26

ああ、なるほど、そういう違いがあるんですね(笑)。オープンなシステムを作らなければならない条件では、たしかにそうですね。

ありがとうございます。