--- 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/