本セッションでは、100万人規模の「お知らせ配信」機能を支えるために採用した、サーバーレスで長時間を要する非同期処理を完遂させるための設計指針を共有します。
本機能は複雑な条件による対象者の絞り込みで構造的に大量のデータを読み込む必要があり、メモリ不足が発生していました。また、マネージドサービスが持つ「10分の制限」というタイムアウトの壁も、大きな課題でした。
この課題解決のため以下2点の取り組みをしました
1.メモリ効率化: 処理パイプラインをIxJSでAsyncIterator化し、メモリ消費をユーザー数に依らず安定化
2.Cloud Run Jobs × Servicesの使い分け: プル型とプッシュ型を組み合わせ、タイムアウトを回避しながら並列実行速度を最大化
あわせて、IxJS導入時に直面したCPU高騰のトラブルシューティングや、可観測性を確保するためのプル型メッセージングにおけるDatadog APMの計装など、現場のリアルな知見を含めて詳説します。
株式会社ビットキー
なし
プラットフォームチームに所属。プロダクト開発の基盤を整えたり、クリティカルな機能開発に従事。