From 1418088581d8b3afe57249497b461176f9d08c04 Mon Sep 17 00:00:00 2001 From: Shivanagesh Date: Tue, 14 Sep 2021 22:56:53 -0700 Subject: [PATCH] Adding System design product review/rating system --- README.md | 1 + .../system_design/review-system/README.md | 251 ++++++++++++++++++ .../review-system/review-system-highlevel.png | Bin 0 -> 13531 bytes .../review-system/review.detailed.png | Bin 0 -> 70278 bytes 4 files changed, 252 insertions(+) create mode 100644 solutions/system_design/review-system/README.md create mode 100644 solutions/system_design/review-system/review-system-highlevel.png create mode 100644 solutions/system_design/review-system/review.detailed.png diff --git a/README.md b/README.md index 266f8b16..12f339bd 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ Check out the following links to get a better idea of what to expect: | Design a key-value store for a search engine | [Solution](solutions/system_design/query_cache/README.md) | | Design Amazon's sales ranking by category feature | [Solution](solutions/system_design/sales_rank/README.md) | | Design a system that scales to millions of users on AWS | [Solution](solutions/system_design/scaling_aws/README.md) | +| Design a product review/rating system | [Solution](solutions/system_design/review-system/README.md) | | Add a system design question | [Contribute](#contributing) | ### Design Pastebin.com (or Bit.ly) diff --git a/solutions/system_design/review-system/README.md b/solutions/system_design/review-system/README.md new file mode 100644 index 00000000..29893544 --- /dev/null +++ b/solutions/system_design/review-system/README.md @@ -0,0 +1,251 @@ +# Design Product Review & Rating System + +*Note: This document links directly to relevant areas found in the [system design topics](https://github.com/donnemartin/system-design-primer#index-of-system-design-topics) to avoid duplication. Refer to the linked content for general talking points, trade-offs, and alternatives.* + +## Step 1: Outline use cases and constraints + +> Gather requirements and scope the problem. +> Ask questions to clarify use cases and constraints. +> Discuss assumptions. + +Without an interviewer to address clarifying questions, we'll define some use cases and constraints. + +### Use cases + +#### We'll scope the problem to handle only the following use cases + +#### NOTE: Assuming that the application is validated that this user is authorized to post the review, the user has to receive the product from our system before writing a review in our system + +**Functional Requirements** +* **User** should be able to post create/update/delete review. +* **User** rate in the range 1-5 +* **User** should be able to upload images/videos with the review +* **Service** should be highly reliable + +**Non Functional Requirements** +* **Service** should have low latency +* **Service** should not lose any data at any time + +**Extended requirements** +* Supporting analytics +* Supporting comments/replies on reviews +* Review tags + +### Constraints and assumptions + +#### State assumptions + +* 1 billion active users +* 1 million reviews are posted in our system per day +* 100 million reviews read request per day + +#### Calculate Memory usage + +**Clarify with your interviewer if you should run back-of-the-envelope usage calculations.** + +**Memory estimations** +* Assuming average 2048 characters are needed per review; +* 1 byte for rating +* 4 byte image ids/video ids + +Avg review size = 2050 bytes * 1M ~ = 2 GB per day +Image Storage= 200kb * 500k = 100GB + +For 5 years = 100GB * 365 * 5 ~= 132000 GB =132 TB; + +5 years with replication + %20 headroom = 0.5PB + +**RPS estimation**: +* 100 Read : 1 Write, +* **Total reads** per day = 100 * 1 M = 100M/86400s = 1k rps +* **Total writes** per day = 1M = 1M/86400s = 10 rps + +Handy conversion guide: + +* 2.5 million seconds per month +* 1 request per second = 2.5 million requests per month +* 40 requests per second = 100 million requests per month +* 400 requests per second = 1 billion requests per month + + +## Step 2: System API definition: + +**Write API:** + +POST(userId, productId, review_text, review_rating, images, videos); +* **userId:** User Id for the review user +* **productId:** Review product Id +* **review_text:** Review text/message +* **review_rating:** Rating (1 - 5) +* **images:** Images about review (optional) +* **video:** Video about review (optional) + +**Read API** +GET(productId, count, sorted_by, page_token,filters); + +* **productId:** Product Id +* **count:** Number of review need to returned in result +* **sorted_by:** Sort by latest +* **page_token:** page_token will be used as offset +* **filters:** filter criteria (search terms) + +# Step 3: DataModel design + +Simplicity case, we can consider my SQL for table structure. + +**User Id table** +* UserID +* First_name +* Second_name +* Password +* profile_pic +* createdAt +* updatedAt + +**Review table** +* reviewId +* productID +* userID +* review +* image_id +* video_id +* rating +* createAt +* updatedAt + + + +## Step 4: Create a high-level design + +> Outline a high-level design with all essential components. + +>![](review-system-highlevel.png) + +## Step 5: Detailed design components + +> Dive into details for each core component. + +**Clarify with your interviewer how much code you are expected to write**. + + +**Important: Do not simply jump right into the final design from the initial design!** + +State you would 1) **Benchmark/Load Test**, 2) **Profile** for bottlenecks, 3) address bottlenecks while evaluating alternatives and trade-offs, and 4) repeat. See [Design a system that scales to millions of users on AWS](../scaling_aws/README.md) as a sample on how to scale the initial design iteratively. + +It's important to discuss what bottlenecks you might encounter with the initial design and how you might address each of them. For example, what issues are addressed by adding a **Load Balancer** with multiple **Web Servers**? **CDN**? **Master-Slave Replicas**? What are the alternatives and **Trade-Offs** for each? + +We'll introduce some components to complete the design and to address scalability issues. Internal load balancers are not shown to reduce clutter. + + +### Application Servers: + +* Application server is going to have heavy ready traffic, it's better to divide application server into read and write servers + * Read Servers + * Write Servers +* Write servers are responsible for generating review id and uploading media to object store(s3) + * Review ID Generation: + * We can use Random Id Generation [blog.twitter.com](https://blog.twitter.com/2010/announcing-snowflake) | [github.com](https://github.com/twitter/snowflake/) + * It will be easy to sort the review if random twitter generation +* Read Server: + * Read Server will access the database through the cache to improve read efficiency/low latency +* Write Server: + * Write server will post the review to [Message queues](https://github.com/donnemartin/system-design-primer#message-queues) + * Quality servers/ml server will consume the review from the message queue and detect abuse review. + * Save the review in DB + +### Load balancers + +* We need to introduce the load balancers between + * client and application servers. + * application servers and aggregators + +### Data Sharding +* Data sharing can be done based on the hash of reviewId, which will ensure an equal distribution of data of all servers. We can use consistent hashing to ensure adding new servers/removing servers causing a small effect. More details about data sharding and consistent hashing reference are given below +* NO SQL can be used for this application purpose like Casandra +## +> ![](review.detailed.png) + +References: + +*To avoid repeating discussions*, refer to the following [system design topics](https://github.com/donnemartin/system-design-primer#index-of-system-design-topics) for main talking points, tradeoffs, and alternatives: + +* [DNS](https://github.com/donnemartin/system-design-primer#domain-name-system) +* [Load balancer](https://github.com/donnemartin/system-design-primer#load-balancer) +* [Horizontal scaling](https://github.com/donnemartin/system-design-primer#horizontal-scaling) +* [Web server (reverse proxy)](https://github.com/donnemartin/system-design-primer#reverse-proxy-web-server) +* [API server (application layer)](https://github.com/donnemartin/system-design-primer#application-layer) +* [Cache](https://github.com/donnemartin/system-design-primer#cache) +* [Consistency patterns](https://github.com/donnemartin/system-design-primer#consistency-patterns) +* [Availability patterns](https://github.com/donnemartin/system-design-primer#availability-patterns) + +To address the constraint of 400 *average* read requests per second (higher at peak), personal data can be served from a **Memory Cache** such as Redis or Memcached to reduce response times and traffic to downstream services. This could be especially useful for people who do multiple searches in succession and are well-connected. Reading 1 MB sequentially from memory takes about 250 microseconds while reading from SSD takes 4x and from disk takes 80x longer.1 + +Below are further optimizations: + +* Store complete or partial BFS traversals to speed up subsequent lookups in the **Memory Cache** +* Batch compute offline then store complete or partial BFS traversals to speed up subsequent lookups in a **NoSQL Database** +* Reduce machine jumps by batching together friend lookups hosted on the same **Person Server** + * [Shard](https://github.com/donnemartin/system-design-primer#sharding) **Person Servers** by location to further improve this, as friends generally live closer to each other +* Do two BFS searches at the same time, one starting from the source, and one from the destination, then merge the two paths +* Start the BFS search from people with large numbers of friends, as they are more likely to reduce the number of [degrees of separation](https://en.wikipedia.org/wiki/Six_degrees_of_separation) between the current user and the search target +* Set a limit based on time or number of hops before asking the user if they want to continue searching, as searching could take a considerable amount of time in some cases +* Use a **Graph Database** such as [Neo4j](https://neo4j.com/) or a graph-specific query language such as [GraphQL](http://graphql.org/) (if there were no constraint preventing the use of **Graph Databases**) + +## Additional talking points + +> Additional topics to dive into, depending on the problem scope and time remaining. + +### SQL scaling patterns + +* [Read replicas](https://github.com/donnemartin/system-design-primer#master-slave-replication) +* [Federation](https://github.com/donnemartin/system-design-primer#federation) +* [Sharding](https://github.com/donnemartin/system-design-primer#sharding) +* [Denormalization](https://github.com/donnemartin/system-design-primer#denormalization) +* [SQL Tuning](https://github.com/donnemartin/system-design-primer#sql-tuning) + +#### NoSQL + +* [Key-value store](https://github.com/donnemartin/system-design-primer#key-value-store) +* [Document store](https://github.com/donnemartin/system-design-primer#document-store) +* [Wide column store](https://github.com/donnemartin/system-design-primer#wide-column-store) +* [Graph database](https://github.com/donnemartin/system-design-primer#graph-database) +* [SQL vs NoSQL](https://github.com/donnemartin/system-design-primer#sql-or-nosql) + +### Caching + +* Where to cache + * [Client caching](https://github.com/donnemartin/system-design-primer#client-caching) + * [CDN caching](https://github.com/donnemartin/system-design-primer#cdn-caching) + * [Web server caching](https://github.com/donnemartin/system-design-primer#web-server-caching) + * [Database caching](https://github.com/donnemartin/system-design-primer#database-caching) + * [Application caching](https://github.com/donnemartin/system-design-primer#application-caching) +* What to cache + * [Caching at the database query level](https://github.com/donnemartin/system-design-primer#caching-at-the-database-query-level) + * [Caching at the object level](https://github.com/donnemartin/system-design-primer#caching-at-the-object-level) +* When to update the cache + * [Cache-aside](https://github.com/donnemartin/system-design-primer#cache-aside) + * [Write-through](https://github.com/donnemartin/system-design-primer#write-through) + * [Write-behind (write-back)](https://github.com/donnemartin/system-design-primer#write-behind-write-back) + * [Refresh ahead](https://github.com/donnemartin/system-design-primer#refresh-ahead) + +### Asynchronism and microservices + +* [Message queues](https://github.com/donnemartin/system-design-primer#message-queues) +* [Task queues](https://github.com/donnemartin/system-design-primer#task-queues) +* [Back pressure](https://github.com/donnemartin/system-design-primer#back-pressure) +* [Microservices](https://github.com/donnemartin/system-design-primer#microservices) + +### Communications + +* Discuss tradeoffs: + * External communication with clients - [HTTP APIs following REST](https://github.com/donnemartin/system-design-primer#representational-state-transfer-rest) + * Internal communications - [RPC](https://github.com/donnemartin/system-design-primer#remote-procedure-call-rpc) +* [Service discovery](https://github.com/donnemartin/system-design-primer#service-discovery) + +### Security + +Refer to the [security section](https://github.com/donnemartin/system-design-primer#security). + +### Latency numbers + +See [Latency numbers every programmer should know](https://github.com/donnemartin/system-design-primer#latency-numbers-every-programmer-should-know). diff --git a/solutions/system_design/review-system/review-system-highlevel.png b/solutions/system_design/review-system/review-system-highlevel.png new file mode 100644 index 0000000000000000000000000000000000000000..5465404a11f283252fc1877de25b8fd09de02e17 GIT binary patch literal 13531 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 Nc)I$ztaD0e0s!=+FXaFL literal 0 HcmV?d00001 diff --git a/solutions/system_design/review-system/review.detailed.png b/solutions/system_design/review-system/review.detailed.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f1a0cd8c7055231e8a9f52ec3b36bc6fdbf4ed GIT binary patch literal 70278 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 f{r7HG{qSG6|Jg~NRQ;U{3=9mOu6{1-oD!M