Cloudflare Queues を使用したダブルバッファリング
Double Buffering with Cloudflare Queues (bellone.com)
要約
Cloudflare Workers, Queues, Workflows, R2 を活用し、テレメトリイベントの収集、バッチ処理、保存を行うパイプラインについて解説しています。UTC時間で区切られたバッチ処理のためにダブルバッファリングキューを使用し、Cloudflare の価格メリットを最大化しています。このパターンにより、大量のテレメトリストリームを圧縮された時間ごとのアーカイブに変換し、サーバーレスで低コストなデータレイクを構築できます。
全文翻訳
Cloudflare Queues を使用したダブルバッファリング
私はダブルバッファリングキューを使用して、テレメトリイベントを収集し、UTC時間で区切られたグループにセグメント化しています。私のパイプラインは、Cloudflare Workers, Queues, Workflows, および R2 を活用してテレメトリイベントをキャプチャ、バッチ処理、保存し、Cloudflare の価格メリットを最大化しています。
モジュロ演算を使用して、ペイロードをアクティブなキューにルーティングし、再び非アクティブなキューをドレインします。UTC を使用して、夏時間(DST)の処理を回避します。
プロデューサー
プロデューサーは、ペイロードのタイムスタンプを評価してメッセージをアクティブなキューにルーティングします。
コンシューマー
コンシューマータスクは、毎時30分にトリガーされ、非アクティブなキューをドレインします。
コンシューマータスクは、現在非アクティブで安全に消費できるキューを決定するために、1時間前までを遡って確認します。
最後に、バッチは圧縮され、単純なパーティショニング戦略を使用して R2 に書き込まれます。
このパターンは、カオスなテレメトリストリームを圧縮された時間ごとのアーカイブに変換します。これにより、ダウンストリーム分析に最適化された、パーティション化されたサーバーレスデータレイクが得られ、クラウドストレージの請求額を非常に低く抑えることができます。