契约与接口¶
English | 中文
AxisVela 通过版本化契约组合独立产品,而不是共享运行时内核。本页解释这在实践中意味着 什么。
什么算契约¶
| 契约类型 | 示例 | 保护什么 |
|---|---|---|
| HTTP/OpenAPI | Rheovela Worker API | 请求/响应兼容性 |
| JSON Schema | Harmovela 事件与任务 | 数据形状与校验 |
| 协议规范 | Harmovela 协调维度 | 跨实现的语义 |
| SDK | AEGIVELA、EIDOVELA 身份 SDK | 语言级易用性与兼容性 |
| 一致性夹具 | 跨语言测试向量 | 行为等价 |
| 签名产物 | 技能包、发布二进制 | 溯源与完整性 |
| CLI 契约 | tek、rheo、archharness |
自动化稳定性 |
契约不是描述实现的文档。它是让实现可以变化而不破坏消费者的边界。
版本化¶
一个实用的契约策略:
- 版本化接口,而不是内部实现。 消费者依赖契约,不依赖运行时。
- 显式破坏性变更。 使用新主版本或新契约路径。
- 保留兼容窗口。 给出弃用日期与迁移路径。
- 测试契约。 一致性夹具是产品的一部分。
- 发布开放接口层。 契约、SDK 与示例应无需销售介入即可发现。
独立产品,不是单体¶
契约的替代方案是共享内核:一个运行时拥有所有领域。那在单一产品内部更简单,在其他地方 更昂贵:它耦合发布节奏、失败模式与治理。
契约接受集成纪律,换取:
- 独立版本化;
- 可替换实现;
- 清晰的许可证边界;
- 组织分离。
生态中的例子¶
- PRAXO-CORE 接缝。 模型、工具、记忆、事件、策略、沙箱、检查点与执行都是接口。 产品或集成方提供适配器。
- Harmovela。 协议跨语言、跨传输定义协调语义,并带一致性夹具。
- Rheovela。 Worker SDK 与 HTTP Worker API 让现有服务无需用 Go 重写即可参与。
- 开放接口层。
*-open仓库发布契约与 SDK;核心或企业运行时可以单独存在。
反模式¶
- 把共享数据库当集成。 它耦合 schema 并绕过策略。
- 复制 SDK。 客户端分支不是契约。
- 未文档化行为。 如果消费者依赖它,它就是契约的一部分,无论是否承认。
- 静默破坏性变更。 改变语义的补丁版本比主版本更快摧毁信任。
- 没有一致性测试的契约。 “兼容”需要测试,不是声明。
一个有用的测试¶
问:如果明天替换这个接口背后的实现,什么会坏? 如果答案是“全部”,它是内核,不是契约。 如果答案是“只依赖契约的东西不会坏”,边界就是真实的。