Abbeal
tripadvisor logo

トラベルテック / レストランマーケットプレイス · Paris + Europe

トリップアドバイザー(ザ・フォーク):Symfony/SolRからハイブリッドAI推薦へ。

ザ・フォーク(2014年からトリップアドバイザー子会社)、欧州レストラン予約プラットフォーム。当初Symfony 3 + Node.js + RabbitMQ + SolRバックエンド — 現在Mistral 7B埋め込み、Algolia検索、LLM強化推薦、フルスタックDatadog観測性で強化。

KPI

Hybrid

AI推薦エンジン

期間

Engagement initial 2017-2018

チーム

1

ハブ

Paris + Europe

React NativeAlgoliaMistral 7BpgvectorApache KafkaDatadog

ザ・フォーク(2014年からトリップアドバイザー子会社)。欧州レストラン予約プラットフォーム、数千万ユーザー、数万のパートナーレストラン。約束:適切な時に適切なレストランを見つけ、2クリックで予約。私たちの仕事:その約束を実現可能にするパイプライン。

出発点(2017-2018)

Racemがレスト・テックのバックエンドに組み込み。当初スタック:非同期メッセージング用Symfony 3 + Node.js + RabbitMQ + 検索用SolR。ミッション:夕方と週末の予約ピークの負荷に耐え、単純な名前+都市マッチングを超えて検索エンジンを進化させる。

納品されたもの

  • レストラン検索用に最適化されたSolRインデックス(地理、料理、リアルタイム空き状況、平均価格)
  • 非同期予約処理、通知、POSパートナー同期のためのRabbitMQワーカー
  • Symfonyバックエンドのリファクタリング:bounded contextsの抽出(予約、カタログ、ロイヤルティ、レビュー)
  • 観測性とプロファイリング:重要なエンドポイントでのp95削減
  • コード規約のドキュメントと入社ジュニア開発者のオンボーディング

現在展開するスタック

同じビジネス(レスト検索、パーソナライズ推薦、空きスロットでのコンバージョン)で、今日私たちが組み立てるもの:

  • メイン検索エンジンとしてのAlgolia:地理、ファセット、タイポ許容、サブ100msエッジレイテンシ
  • レストランシートとレビューでのMistral 7B埋め込み:'日曜ランチ、家族で、静かなテラス'のセマンティック検索
  • 埋め込みを保存しユーザー別にプロファイリングするpgvector(料理、価格、雰囲気の好み)
  • ハイブリッド推薦エンジン:協調フィルタリング + LLM強化(Claude Sonnetがトップ50を再ランク)
  • イベントバスとしてのApache Kafka(予約、ノーショー、キャンセル、POS同期)、インシデント時のリプレイ
  • フルスタックDatadog:APM + RUM + 構造化ログ + 週末/夕方オンコールアラート

なぜ難しいか

  • レイテンシ:ユーザーはスクロール前に800ms未満の注意しかない。エッジ検索は譲れない
  • 時間ピーク:平日19-21時、平均QPSの4倍、土曜19時45分のダウンタイムは誰も許さない
  • ノイジーなレストデータ:変動するメニュー、予告なしの閉店、古い写真
  • ユーザーコールドスタート:新参者には履歴がないが、2画面で関連推薦を得る必要
  • 埋め込みプロファイルのGDPRコンプライアンス:保持、消去権、推薦オプトアウト

このエンゲージメントがAbbealに教えたこと

ザ・フォークは高頻度マーケットプレイスでの最初の本格的なエンゲージメントでした。私たちは当時のSolRを最適化し、SLAを壊さずにAlgolia + 埋め込みに移行し、何より:平凡な推薦エンジンが静かにGMVの5-10%を失わせ得ることを学びました。それが今日、LLM強化ランキングに移行する他のレスト / レジャー / 旅行マーケットプレイスで再生する経験です。

// 次に読む

貴社でも似たケースがある?

アーキテクトと話す