DoorDash社のエンジニアリング・チームのChen Yang氏とFan Zhang氏はこのほど、Apache Flinkを使用して、ユーザーのアクティビティとユーザー・セッションをリアルタイムで識別するApache Flinkによるインメモリ・セッション化プラットフォームを開発した。下図に示す新システムは、DoorDash社が以前直面していた多くの課題の1つである、ユーザーがカートを本当に放棄したのか、それとも単にもっと多くの商品や別の販売店を閲覧したのかを識別する、という問題を解決した。この区別は、タイムリーで適切なカート放棄通知を送信するために非常に重要であった。バッチ処理などの従来の方法では、リソースを大量に消費し、タイムラグが発生するため、リアルタイムの検知はほぼ不可能だった。
DoorDash社のエンジニアリングチームが設計した、リアルタイムのセッション検出データフロー。
新しいセッション化プラットフォームは、大規模でステートフルなFlinkジョブで構築され、モバイルとウェブクライアントのイベントを通じたユーザーセッションをメモリ上で監視する。このアプローチにより、「処理前に大量のデータをコールドストレージからメモリにロードすることなく 」ユーザーのアクティビティ・イベント・ストリームを処理することが可能になり、「膨大な計算コストとレイテンシを回避 」するだけでなく、「より適切なタイミングで通知を送信するために 」短い時間枠で非アクティブの期間を検出可能になった。新しいプラットフォームに、課題がなくなるのである。Flinkは全てのイベントをリアルタイムでメモリ処理するため、セッションが終了するまで全てのユーザーセッションイベントを保持する必要がある。DoorDash社の現在の規模と、各顧客のセッションが約1時間であることを考えると、ローカルの機内状態は瞬間的に数百ギガバイトになる可能性がある。
DoorDash社は、リアルタイムのセッション検出と通知配信にApache Flinkを採用することで、ユーザーエンゲージメントとコンバージョン率を大幅に向上させている。新しい設計により、DoorDash社は通知配信の適時性と精度を大幅に改善し、その結果、通知を送信してから開かれるパーセンテージが40%向上した。この成功により、カート放棄通知にプロモーションを追加する、カート放棄通知の頻度を制御するなど、プラットフォームでの新たな実験がすでに始まっている。