2026 年初刚走完 Expedia SWE L5 的流程。system design 有两轮,每轮 45 分钟,而且他们很聚焦 travel 领域的问题,不是那种通用「design Twitter(设计 Twitter)」题。我的题大概是:设计一个酒店搜索排序服务,以及设计一个航班状态更新的通知系统。
他们真正关心的是:
可用性 vs 一致性的取舍。 Expedia 的核心产品是预订平台,所以他们会猛抠当库存系统部分不可用时会发生什么。准备好把 CAP theorem 讲到很具体,而不是只会背缩写。
预订高峰下的规模。 想象航班的黑五。水平扩展、缓存层(Redis)、基于队列的处理。如果你提 Kafka,要知道为什么用它而不是 SQS,并且能具体讲分区 key 怎么选。
API 和下游依赖。 他们后端要对接上百个供应商 API(航司、酒店集团)。他们想看你是否考虑过 circuit breaker、带 backoff 的重试逻辑、以及当某个供应商挂了时怎么优雅降级。
面试官是 senior 的 IC。有一个明显来自 travel supply 团队。他们会在我做假设时 push back,还会让我量化:「How many booking events per second? What's your SLA target?(每秒有多少个 booking 事件?你的 SLA 目标是什么?)」。这种严谨度。
定级:Expedia 的 L5 大概相当于大多数 mid-tier 公司里的 senior。设计门槛是真的,但也不到 Meta/Google 那种不可能。我会这么总结:你需要证明自己能给模糊问题定范围,并明确做取舍,不是只会白板画个 CRUD。
建议在面试前至少做一次 mock,题目用分布式 booking 或 reservation system。travel 场景会经常出现,如果你只练过抽象例子,很容易翻车。
评论区可以问我细节。