What it takes to build a real-time recommendation system