Functional
- recommend multiple types of content with different characteristics
- videos
- albums
- friends
- games
- (essentially this means supporting several recommendation algorithms)
- use implicit feedback data to calculate recommendations
- views by users, click-through
- support multiple collection points
- use explicit feedback data
- ratings by a user
- record contextual information and use it instantenously to update a set of recommendations
- generate sets of recommendations for specific types and mixed sets
- be able to use data of different types to generate a specific type
- support post-processing filters on recommended sets
Non-functional
- scale to millions of users
- support peak hours during which activity is significantly higher
- degrade gracefully if service is limited / unavailable
- easy to add and deploy new sets of recommendations
- make use of contextual information in realtime to update recommendations