← Hub
System Design
System Design — BigCat's Architecture Lab
> 分布式 · 可扩展性 · 真实案例拆解
Day 01
Scalability 基础
Vertical/Horizontal · L4/L7 LB · Stateless · 容量规划
Day 02
缓存 (Caching)
多层缓存 · LRU/LFU/ARC · Cache-aside · 失效难题
Day 03
数据库选型
SQL/NoSQL · OLTP/OLAP · ACID/BASE · 决策树
Day 04
数据库分片 (Sharding)
Hash/Range · 一致性哈希 · 热点 · Resharding
Day 05
复制 (Replication)
Leader/Multi/Leaderless · Sync/Async · 复制延迟 · Failover
Day 06
一致性 (Consistency)
Linearizable/Causal/Eventual · CAP/PACELC · HLC · 分层选型
Day 07
分布式事务 (Distributed Transactions)
2PC/3PC · Saga · Outbox · Idempotency
Day 08
消息队列 (Message Queues)
Kafka/RabbitMQ/SQS · 投递语义 · Backpressure · DLQ
Day 09
API 设计 (API Design)
REST/GraphQL/gRPC · 分页 · 版本管理 · 限流契约
Day 10
限流 (Rate Limiting)
Token/Leaky/Sliding/GCRA · 分布式计数 · 多维度 · 429 契约
Day 11
唯一 ID 生成 (Unique ID Generation)
UUIDv4/v7 · Snowflake · ULID/KSUID · 时钟回拨
Day 12
搜索系统 (Search Systems)
倒排索引 · Lucene Segment · Scatter-Gather · 向量检索 HNSW
Day 13
推荐系统 (Recommendation Systems)
双塔召回 · 多阶段漏斗 · Cold Start · 生成式推荐 TIGER
Day 14
Feed 系统 (Feed System)
Push/Pull/Hybrid · Fanout 写放大 · Timeline 存储 · Ranking Pipeline
Day 15
聊天系统 (Chat System)
WebSocket 长连接 · 消息存储分桶 · 递交保证 · E2E 加密
Day 16
视频流系统 (Video Streaming)
转码 Pipeline · Per-Title/Per-Shot · ABR · CDN/Open Connect
Day 17
支付系统 (Payment Systems)
幂等 Recovery Point · 双重记账 Ledger · Saga/Outbox · 三方对账
Day 18
订阅与计费 (Subscription & Billing)
生命周期状态机 · Proration 按秒 · 用量 Metering · 多货币与税
Day 19
地理系统 (Geospatial Systems)
Geohash/S2/H3 · 网格 vs R-Tree · haversine/ETA · Uber DISCO 地理分片
Day 20
计算作业系统 (Batch vs Stream)
批/流统一 · Lambda/Kappa · Event-time/Watermark · Exactly-once
Day 21
监控与可观测性 (Observability)
Metrics/Logs/Traces · OpenTelemetry 采样 · SLO/Error Budget · 分位数聚合陷阱
Day 22
上线与发布 (Deployment & Release)
Rolling/Blue-Green/Canary · 金丝雀分析 · Feature Flags · Expand-Contract 迁移
Day 23
可靠性 (Reliability)
断路器三态机 · 退避+Jitter 重试 · 舱壁隔离 · 优雅降级与 Load Shedding
Day 24
安全基础 (Security)
AuthN/AuthZ 边界 · OAuth2/OIDC + PKCE · JWT vs Session 撤销 · Secret 动态凭证
Day 25
系统设计面试 (System Design Interview)
范围界定 · 4 步框架+时间盒 · 出声推理与深挖 · Trade-off 表达
Day 26
容量估算与假设 (Capacity Estimation)
2 的幂+延迟数字 · DAU→QPS 峰值 · 存储/带宽/内存三件套 · 假设纪律与敏感性
Day 27
成本与容量工程 (Cost & Capacity Engineering)
排队论 headroom · Reactive/Predictive 扩缩 · FinOps 成本归因 · Rightsizing/Spot 采购三层
Day 28
CDN 与 Edge (CDN & Edge)
Anycast/BGP · Tiered Cache 回源收敛 · Purge/SWR 失效 · Edge Compute V8 Isolate
Day 29
文件存储 (File & Object Storage)
Object vs Block vs File 扁平 keyspace · 复制 vs 纠删码 11 个 9 · Multipart + presigned 直传 · 元数据强一致与热分区
Day 30
权限与账号系统 (Authorization)
RBAC/ABAC/ReBAC 关系元组 · 层级继承与 Zookie 撤销 · 多租户 RLS 隔离 · 哈希链审计不可篡改
Day 31
混合检索与重排序 (Hybrid Search & Reranking)
BM25 vs 稠密向量互补 · 召回/精排多阶段漏斗 · RRF 融合与 cross-encoder 重排 · query-biased snippet 高亮
Day 32
LLM 服务架构 (LLM Serving)
两阶段推理与 Continuous Batching · KV Cache/PagedAttention 显存瓶颈 · Prompt 缓存与前缀感知路由 · Cost/Latency/Quality 三角
Day 33
AI 产品后端 (AI Product Backend)
RAG 召回质量 contextual+hybrid+rerank · Agent loop 持久化执行可恢复 · Embedding 服务模型/索引版本绑定 · 人机协同审批门
Day 34
实时系统 (Real-time Systems)
TCP 队头阻塞与 UDP/WebRTC/QUIC 通道选型 · 客户端预测+服务器和解+插值 · 权威服务器 tick/delta/AOI 状态同步 · 协作编辑 OT/CRDT/LWW(Figma)
Day 35
物联网与边缘 (IoT & Edge)
MQTT pub/sub 与 QoS 分级 · 边缘减量与断网缓冲 · Kafka 削峰解耦背压 · 时序 DB Gorilla 压缩与基数爆炸
Day 36
区块链与分布式账本 (Blockchain & Distributed Ledger)
PoW/PoS/BFT 共识与 Sybil 抗性 · 智能合约确定性+gas+reentrancy · 哈希链/Merkle/链下存储可用性 · 三难与 L2 Rollup(Optimistic vs ZK)
Day 37
多租户 SaaS 架构 (Multi-tenant SaaS)
Silo/Pool/Bridge 隔离光谱 · 按 tenant_id 分片+RLS 防漏查与倾斜治理 · 噪声邻居 per-tenant 限流+公平队列 · 用量计量幂等+可重算计费
Day 38
数据湖与湖仓 (Data Lake & Lakehouse)
湖/仓/湖仓选型与开放列存 · Iceberg/Delta/Hudi 在 S3 上做 ACID(不可变文件+原子切快照+OCC)· 分层元数据剪枝+时间旅行+小文件治理 · 批流一体 COW vs MoR 与增量 ETL
Day 39
工作流引擎 (Workflow Engine)
持久化执行 event-sourcing+确定性重放 · 编排 vs 编舞 · Saga 补偿事务语义反做+前向/后向恢复 · Activity at-least-once+幂等键+心跳超时
Day 40
特征平台与 ML 基础设施 (Feature Platform & ML Infra)
双 Store 离线仓库 vs 在线 KV 一个定义两处物化 · Point-in-time join 防标签泄漏(log-and-wait vs backfill)· 模型服务延迟预算切分+取数优化 · A/B 稳定分桶+guardrail+双边市场 switchback
Day 41
当故障快于人类反应 (Failure Faster Than Humans)
把人移出快回路:自动检测+止血(熔断/Kill Switch)· 限爆炸半径 Cell 架构/隔板/Shuffle Sharding · 变更安全 金丝雀+自动回滚+Error Budget(先护栏后规模)· 可观测驱动自动决策·认知稳定行动可变(Knight Capital/Perrow)
Day 42
全球化与多区域 (Multi-region)
GeoDNS/Anycast 就近路由+归属区故障转移 · 多活一致性 LWW vs 单写归属区 vs Spanner TrueTime 强一致 · 数据驻留 geo-partitioning 满足 GDPR(含备份日志全生命周期)· 跨区延迟优化 读本地写归属·减少跨洋往返
Day 43
隐私与合规架构 (Privacy & Compliance)
删除权 crypto-shredding 删密钥覆盖备份/数仓/Kafka(vs 物理删/tombstone)· 脱敏 伪匿名≠匿名·k-匿名/差分隐私与重识别 · 审计追踪 append-only 哈希链防篡改(骨架+载荷分离)· 同意管理 purpose limitation·同意随流传播(IAB TCF)
Day 44
混沌工程与韧性测试 (Chaos Engineering)
稳态假设 control/experiment 双组证伪(消除时间噪声)· FIT 分层故障注入 请求级传播(vs Chaos Monkey 杀实例)· 爆炸半径逐级放大 + 自动中止 kill switch(生产实验安全护栏)· Game Day/Google DiRT 测人与流程 MTTD/MTTR
Day 45
协作编辑系统 (Collaborative Editing)
OT 中心串行化换纯文本零膨胀(TP1/TP2·Jupiter/Google Docs)· CRDT 稠密位置 id 可交换换 metadata 膨胀+interleaving(Yjs/Automerge columnar 100:1→1:1)· 离线优先 version vector 因果合并(Figma 重连 replay+属性 LWW)· per-document 单写权威进程+snapshot 截断墓碑 GC
Day 46
分布式共识与协调 (Consensus & Coordination)
多数派 Quorum 交集=安全地基(Raft/Paxos/ZAB·etcd/Chubby/KRaft)· term 单调+多数派选举数学消灭脑裂 · 分布式锁 fencing token 根治 GC 停顿双主 · 线性化读 ReadIndex/lease/follower(Jepsen etcd 八成非线性化)
Day 47
数据库内部与存储引擎 (Storage Engines)
B+Tree vs LSM 读/写/空间放大三选二(RUM·RocksDB/InnoDB)· WAL 先写日志+ARIES 三阶段崩溃恢复 RPO=0 · MVCC 读写不互斥+版本回收(VACUUM/undo·Postgres vs InnoDB 写放大)· 索引内部+CBO 优化器最左前缀/覆盖索引/选择性
Day 48
网络基础 (Networking Fundamentals)
TCP 可靠有序的代价=队头阻塞 vs UDP 零握手 · HTTP/1.1→2→3 三层围剿队头阻塞(HTTP/2 单 TCP 高丢包更痛→QUIC 每流独立)· TLS 1.2 2-RTT→1.3 1-RTT→0-RTT 及重放只能幂等 · DNS/Anycast 就近 + L4 扛量 vs L7 终止 TLS 智能路由
Day 49
容器与编排 (Containers & Orchestration)
容器=普通进程+namespace 切视图/cgroup 切资源(共享内核换密度,隔离弱于 VM)· 声明式 level-triggered reconcile loop:故障不是特例只是 level 偏离 · 调度 filter/score bin-packing 与利用率↔可用性对立 · Service Mesh Envoy sidecar 零改码换每跳代理开销(→ambient/eBPF 去 sidecar)
Day 50
把 Code Review 当信号检测系统 (Code Review as Signal Detection)
有效误报 <10% 决定工具生死(Google Tricorder NOT USEFUL 按钮)· 分诊层 severity×confidence 门控 + nitpick 交给 autofix 不问人 · diff-time vs 批处理决定修复率(Meta Infer 近 0→显著)· 误报预算像 SLO error budget 自动降级 + 活动 vs 结果指标 Goodhart 陷阱
Day 51
低底率下的告警系统 (Alerting Under a Low Base Rate)
基率谬误:0.1% 单次误报 × 千万检查淹没 5 条真报,P(真│报)≈0.05%(Axelsson 贝叶斯)· 三条出路:压 FPR/抬底率缩判定域/串独立层相乘 · 独立 oracle 兜底 vs LLM 自任裁判——共享盲区则相乘退化成不降 · 报告级 vs 判定级 FP 的度量陷阱 + on-call 信任才是真 SLO
Day 52
给混沌工程装一个正确性 oracle (Adding a Correctness Oracle to Chaos Engineering)
故障下「还活着」≠「答对了」:跳过 shard 静默返回部分和、零告警(gray failure 差分可观测性)· 差分 oracle:无故障参照路径 vs 故障路径归一化后比对,真值随流量自生成 · 归一化层(全列定序/浮点量化到分/屏蔽 now·rand)不做就误报刷屏 · 三态裁决 PASS/可接受降级/正确性 bug——如实声明 partial=🟡,谎称完整=🔴 · 独立参照防错误趋同 + AI 只坐生成器席不当裁判(承 Day 44/51)
Day 53
项目风险要按肥尾管理 (Managing Project Risk by the Fat Tail)
IT 超支是幂律肥尾:中位项目在预算内、均值高中位 73pp,六分之一是黑天鹅 +200%、最差 18% 平均 +447%(Flyvbjerg 1.6 万项目库)· 别盯均值盯尾部:参照类预测取 P80 定预留 + 机械止损线 + 分阶段承诺(实物期权)· "多杆全中"式成功定义制造假失败率(CHAOS 16.2%、Flyvbjerg 0.5% 同构,接 Day 51 口径陷阱)· 与容量规划「按 P99 而非均值供容量」同源
Day 54
Fail Obviously — 给 AI 工作流做失效可见性设计
Bainbridge 1983《自动化的反讽》在 LLM 时代成最难一条:LLM 的失效是「错得流畅」、不自曝 · 失效可见性工程:结构化断言 / 可执行自检 / diff 高亮,用独立 oracle 证伪、把「静默错结果」变成标红断言(自评同源相关失效 ≈ 没查)· 核验成本工程:解释只在真降核验成本时才降过度依赖(Vasconcelos CSCW 2023 / Zhang FAT* 2020 边界)· 终审席四参数:底率 / 核验成本 / 练习剂量(注入错例)/ 失效可见性,承 Day 51 低底率告警