SWE / Senior Lead · Power Day System Design

Capital One 信用卡系统设计:授权、风控、账务与报告

Power Day 多帖提信用卡系统;按登录、支付授权、欺诈检查、消费视图、月度报告和提额拆解同步/异步边界。

题目重点:Power Day 多帖提信用卡系统;按登录、支付授权、欺诈检查、消费视图、月度报告和提额拆解同步/异步边界。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练版包含客户端登录、卡/账户元数据、一次授权请求与决策、不可变账务事件、用户消费视图、月度报告和提额决策;具体卡网络/监管实现须面试官给边界。
  • 授权路径必须给明确 approve/decline/unknown 结果,网络超时不能当确定失败;不能凭本文设计给真实财务操作建议。
  • 金额用整数最小单位,敏感卡信息只以受控 token/加密存储;具体密钥管理与合规标准以实际要求为准。
  • 风险检查可有同步低延迟模型/规则与异步复核两层;题目未明确延迟阈值,因此先设预算变量而非编造 50ms。

解题路线

  1. 先问核心用户旅程、卡网络/第三方范围、授权 p99 目标、风控失败策略、报表准确性和提额是否实时;画实体 CardToken、Account、Authorization、LedgerEntry、RiskDecision、Statement。
  2. 同步授权链路:认证调用方与卡状态→校验额度/余额及幂等请求 ID→同步风险检查→在原子边界预留额度并返回决定;分布式超时进入 UNKNOWN,靠查询/对账确认,避免重复授权。
  3. 账务事件与用户消费视图分开:授权不等于最终清算;记不可变状态/金额事件,异步投影到交易列表、额度和分析,所有投影可重建并处理重复/迟到。
  4. 月度报告从经过校验的账务与账户状态生成可审计快照,批处理重试与差异对账;提额请求与实时决策服务隔离,判断结果/依据与人工复核路径留审计。
  5. 敏感数据按最小权限、token、加密/密钥隔离与访问审计设计;明确应用身份验证和服务间认证不同。用峰值请求率、读写比例与 p99 预算逐段估缓存、DB 分片与第三方超时,并给故障降级策略。

手动走一遍

训练支付:同一授权 ID 被网络重试两次,系统只产生一个额度预留;风险服务超时触发预先定义的 fail-open/fail-closed 决策,不在答案里默认为成功。清算晚到时从授权状态更新账务,消费视图最终反映实际金额;月报用已确认快照而非临时缓存数。

规模与取舍

同步路径延迟约认证+卡/额度读取+风险+持久确认+网络开销之和,均需按目标 p99 分预算;存储随授权/清算事件数与保留期线性增长。题目未给 QPS/SLA,容量以变量和测量方法说明。

易错点与追问

容易失分的边界

  • 把授权、清算与账单写成一次同步数据库写。
  • 第三方超时直接重试新 ID,重复占额度。
  • 把月报从易变缓存生成,缺审计与对账。
  • 只列 Kafka/SQS,没说事件去重、顺序或投影恢复。
  • 提敏感信息加密却没说谁能解密、密钥和访问审计。

继续深挖

  • 授权 p99 超出目标时先优化哪一段?
  • 风控服务不可用时如何选择故障策略?
  • 跨 Region 授权怎样防双重额度预留?
  • 月报生成后发现迟到清算怎样更正?
✓已复制微信号!