ApplicationsBusiness & Market 🇷🇺 12.08.2026 16:01

How to Build a Recommendation System in TravelTech in 5 Weeks: Kafka and MongoDB Instead of Feature Store

TutuTutu
An MLOps engineer from Tutu describes how a recommendation system was built from scratch in five weeks using Kafka, MongoDB, and ClickHouse, deliberately avoiding a Feature Store for speed. The system suggests hotels after a transport ticket purchase, using real-time order data from Kafka and nightly batch features from ClickHouse, all stored in MongoDB for fast inference.
Christina, an MLOps engineer at Tutu, explains how her team launched a recommendation system (RecSys v1) in just five weeks to meet a high-season deadline. Instead of building a proper Feature Store, which would have taken months, they used MongoDB as a temporary online store, writing real-time orders from Kafka and nightly batch features from ClickHouse into a single document per user. The main engineering challenge was handling the context of a specific trip—destination city, dates, and number of guests—which collaborative filtering alone couldn't capture. They designed the API contract to accept a target order from the user's purchase history, converting UTC dates to local time of the arrival city to ensure correct check-in/check-out dates. The service reads only from MongoDB during inference, with a fallback to top hotels by order count when ALS vectors are missing. Later, they upgraded to CatBoost for ranking, loading the model from object storage at service startup. They also backfilled historical orders via snapshot Kafka topics to ensure warm path users had a history, and they merged duplicate orders by order_id. This pragmatic approach let them validate the hypothesis on live traffic without perfect architecture.
Abbreviations
ML = Machine Learning — машинное обучение
MLOps = Machine Learning Operations — операции машинного обучения
RecSys = Recommender System — рекомендательная система
DS = Data Scientist — специалист по данным
DWH = Data Warehouse — хранилище данных
ALS = Alternating Least Squares — метод попеременных наименьших квадратов
CTR = Click-Through Rate — показатель кликабельности
API = Application Programming Interface — программный интерфейс приложения
UTC = Coordinated Universal Time — всемирное координированное время
Source: Habr — хаб ML — original
Our earlier posts on this topic ↓
Fresh news