レート制限されたAPIでデータ損失なしにポーリングパイプライ... ノート

レート制限されたAPIでデータ損失なしにポーリングパイプラインを設計する

誰かのAPIからデータを摂取するあらゆるシステムは、最終的にポーラーを記述することになる。それはcronジョブの15行から始まる:エンドポイントにアクセスし、最後のタイムスタンプと比較し、新しいものを挿入する。それはすぐに機能するが、それが問題なのだ――記録を失い始めてから長い間、機能しているように見え続ける。私は公開ディスカッションAPIを継続的にポーリングする取り込みレイヤーを維持しており、「ポーラーは実行されている」と「ポーラーは正しい」との間のギャップを閉じるのに予想以上に時間がかかった。以下に、実際のデータ損失を引き起こした4つの障害モードと、それらを修正したパターンを示す。