Design review system with voting and rewards
DoorDashSoftware Engineer · OnsiteLast updated
This system design question evaluates a candidate's ability to architect a scalable review platform with voting, counter aggregation, and rewards at high traffic volumes. It tests practical knowledge of distributed counter strategies, idempotent write handling, read/write path separation, and abuse prevention — core competencies assessed in senior software engineer interviews.
Design a scalable review system for an e-commerce platform where customers can post reviews on products and upvote/downvote existing reviews, and review authors receive rewards based on upvote counts. Define APIs for creating reviews, voting, querying top reviews, and claiming rewards. Model the data schema for reviews, votes, and per-review upvote counters. Ensure idempotent voting, prevent double-votes and abuse (e.g., sybil/brigading), and support undo/changes. Propose a counter architecture (e.g., sharded or approximate counters) and a ranking strategy. Address scaling, caching, consistency, and reliability (failover, retries, deduplication), and outline monitoring and backfill processes.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.