---
title: KHTN - recommendation system
tags: KHTN khtn recommendation system
description:
---
SRS - Recommendation system
===
## System Features and Requirements
### Functional Requirements
- https://docs.google.com/document/d/13c8IMFfJzWr5aTdXISyPdwFnSRNHm9Wp/edit#
(section 1)
### External Interface Requirements
#### Hardware Interfaces
- We have two options to deploy web server
- Google App Engine (Flexible)
- Easy to scale up
- Can scale down to zero instances so it can reduce cost if no incoming requests
- Fast to have a demo
- CONS:
- Limited resource
- Hard to install some python libraries
- Compute Engine
- Can handle complex preprocessing process
- Usually has more power than GAE
- CONS:
- Cost more
- Need more effort to deploy and maintenace (DevOps)
- Operation system: Linux
#### Software Interfaces
- Using Flask/Tornado (micro python framework) to create web api
- Database: TBD
#### Communications Interface
- gRPC client: send request to Tensorflow serving
- Rest API: end point for client to query recommendation result
### System Features
### Nonfunctional Requirements
- Performance
- Do we have soft or hard timing constraints?
- Safety
- Limit number of request from an IP to prevent DDoS
- Security
- Do we need to support HTTPS?
- Which authentication method we should use?
- Do we store any information of users? If yes do we need to hash those information?
- Quality
- Support to run multi version of recommendation system at the same time. Have benefit if we want to do a/b testing.
## Q&A
- Q: Do we support online learning?
## Reference
https://online.visual-paradigm.com/diagrams/templates/google-cloud-platform-diagram/recommendation-engines/
https://online.visual-paradigm.com/diagrams/templates/google-cloud-platform-diagram/recommendation-engines/