Skip to content

边界与契约(Boundaries & Contracts)

边界 = 谁不能改我,契约 = 我答应你什么。本 group 解决 L2 第二问:"模块 / 服务之间怎么说话?"

本 group 包含

文档核心问题V2 节点
Coupling Tradeoff耦合多少算合适?B6 权衡
API Design接口如何设计?B4 抽象 + B7 表达
Interface Contract同步 RPC 的契约?B4 抽象
Event Contract异步事件的契约?B7 表达 + Schema
Hyrum's Law为什么契约会被"试探性使用"?控制论 Ch 6 解耦
Deprecation Cycle契约如何下架?V2 B5 演化
Integration Maturity Model集成风格的成熟度等级?B3 + B6

边界与契约的 3 个层次

边界与契约 = 3 个层次
  1. 模块边界(代码层)   → package / namespace / module
  2. 服务边界(部署层)   → HTTP / gRPC / message
  3. 组织边界(团队层)   → 所有权 / 责任 / SLA

阅读顺序

coupling-tradeoff (基调:耦合不是越低越好)

api-design (接口设计原则)

interface-contract (同步 RPC 契约)

event-contract (异步事件契约)

hyrums-law (契约会被试探的现实)

deprecation-cycle (契约下架)

integration-maturity-model (整体成熟度等级)

与其他 group 的关系

  • 上游:02-architecture(架构风格 → 接口形态)
  • 下游:04-patterns(契约 → Saga / CQRS 模式)、L3-implementation(契约 → 代码生成)

关键洞察

边界与契约的核心不是"严格"——是"可演化"——

  • 契约必须有版本(v1, v2, ...)
  • 契约必须有 deprecation 周期(不是立即下架)
  • 契约必须被监控(哪些调用方还没切?) 否则契约就是"装饰品"——3 个月后没人记得当时承诺过什么。

相关链接

Last updated:

从名家方法论与工程化思路中蒸馏出自己的工程体系。