Collaborative filtering and matrix factorization-based architecture with a distributed database and a caching layer, handling 100,000 user requests per hour