讲述市面上可能遇到的各类系统设计问题,以及设计方案的优缺点和具体取舍。
cases/— 主内容:一个具体场景一篇(短链服务、限流器、Feed 流……)。读者带着问题来,从这里进入。refs/— 引用子块:一个概念一篇的"词汇表",由 case 按需链接,不在 case 里重复展开:foundations/— 基础理论:CAP、一致性模型、时钟与序storage/— 存储选型:SQL / NoSQL / 时序 / 对象存储wide-column.md— 宽列存储(Cassandra / HBase 模型)与它放弃的东西
cache/— 缓存:一致性、雪崩 / 穿透 / 击穿messaging/— 消息队列:投递语义、顺序、幂等realtime-channel.md— 实时下行通道:WebSocket / 长轮询 / SSE / 厂商推送delivery-semantics.md— 投递语义:at-most / at-least / exactly-onceidempotency.md— 幂等与去重:键设计、分层去重ordering.md— 消息顺序:分区有序、单调 seq、时钟方案
coordination/— 分布式协调:锁、共识、选举patterns/— 架构模式:分库分表、CQRS、读写分离fan-out.md— 写扩散 vs 读扩散:受众规模决定分岔
resilience/— 稳定性:限流、熔断、降级、重试 / 超时预算
templates/— 写作模板,新增文章从这里复制。
维护约定(命名、链接纪律、提交前自检)见 agent.md。
新增案例后在此登记一行。命名用「领域-主题」小写 kebab-case,通用案例不加前缀。
| 领域 | 案例 | 一句话结论 |
|---|---|---|
| 社交 | social-messenger | 长连接网关 + 会话分区宽列存储 + at-least-once/端侧去重;顺序只承诺会话内有序,用 seq 在端侧收敛 |
case 是文章,ref 是词条:读 case 碰到共性概念时跳去 ref 看方案谱系,再回到 case 看本场景怎么取舍。