← 面经 & 服务案例

DoorDash 系统设计高频原题:Review & Reward System

DoorDash 的系统设计题库不大,这道 Review & Reward System 是最高频的原题之一。设计一个类似 DoorDash 的评价与奖励系统:用户完成订单后可提交 review(1-5 星评分、文字评价、可选图片),其他用户可以 upvote 或 downvote,系统维护聚合数据,并在评价到达指定评估窗口后可靠触发 reward calculation。

整体可以拆成 Review Service、Vote Service、Vote Aggregation Pipeline 和 Reward Orchestrator 四个核心模块。

Review 提交时先通过 Order Service 验证订单已完成,并检查是否已创建过 review。Review metadata 存储在 DynamoDB 或 Cassandra,图片放 S3。创建接口通过 idempotency key 或 order_id + user_id 唯一约束处理客户端重试。

Vote Service 单独负责投票。Vote table 使用 review_id 和 user_id 作为唯一 key,从数据模型层面保证一个用户对一条 review 最多只有一个有效 vote。Vote 写入成功后发布 VoteChanged event 到 Kafka,不同步更新聚合字段。

Kafka 后面由 Vote Aggregator 消费事件,根据 vote change 计算增量,更新 ReviewStats Store。Upvote count、downvote count 和 helpfulness score 作为异步维护的 materialized view。读取 review 时直接读取预聚合结果,不扫描 Vote table 做实时 COUNT。

Reward workflow 采用异步调度。Review 创建时记录 evaluation_at(例如发布七天后进入评估),到期 review 通过 delayed queue 或 scheduled job 找到,交给 Reward Orchestrator 调用 Reward Scoring Service。Exactly-once 的关键是 at-least-once delivery + idempotent processing:为 review_id 和 evaluation_window 建立唯一的 reward job,Worker 通过 conditional write 将状态从 PENDING 修改成 PROCESSING。

整体通过 cache、materialized aggregation 和 event-driven architecture 将 read、vote 和 reward workflow 解耦,满足高可用、低延迟、eventual consistency 和水平扩展的要求。

想要和我们的面试辅助团队进行一次免费的沟通?

我们会直击要点,回答你的所有疑问,并介绍我们的服务。还有顾虑?我们可以提供免费的面试实战展示。

预约免费咨询

客户怎么评价我们

毫无疑问是市面上最专业的 SDE 辅助机构。我接触过若干家机构,但是你们的专业能力以及细致服务给我留下了非常深刻的印象。感谢你们带给我的无比丝滑的跳槽体验。

A.H. · Amazon SDE L5

现在的市场对于转码选手可以说是非常不友好了。本来我已经不抱希望,准备收拾行李回国了,但是和导师聊完之后,我打算赌一把。结果团队果然不负所托,帮我成功上岸 Capital One。

C.Z. · UIUC 物理转码

本来觉得辅助是一件非常不靠谱的事情,我也只是抱着试探的心态和你们的团队聊了聊细节。但是一试便知能力的深浅,无论是分布式理论还是项目实战经验,都非常符合我的面试岗位需求。如果没有你们的协助,估计很难拿下这个 senior role。祝生意兴隆。

匿名客户 · Senior SDE