OceanWayOceanWay

跨仓依赖矩阵

OceanWay 十四仓允许的契约、运行时与制品依赖,以及禁止的跨仓耦合

跨仓协作只允许三类边:版本化契约、受控运行时调用和不可变发布制品。Git 默认分支、本地相对路径、跨库 SQL 和复制的 DTO 都不是合法依赖。

依赖类型

类型合法载体版本要求示例
Contractoceanway-contracts Package、OpenAPI、JSON Schema、事件 Schema固定版本或制品摘要Core 与 Gateway 共同使用 Attempt Contract
RuntimeHTTPS/内部 RPC/队列事件,带 Workload 身份与 Audience接口主版本固定API Edge 调用 Core Admission
ArtifactImage Digest、SBOM、签名、Migration Bundle、证据文件不可变 DigestInfrastructure 部署 Core 镜像
Documentation固定 Release、Commit、ADR 与 Runbook 链接链接到不可变来源Docs 引用 Contracts Release

仓库依赖矩阵

仓库允许依赖主要输出不允许依赖
SitePublic Read API、公开目录契约公共品牌 SurfaceCustomer Session、Core DB、Gateway
Developer CenterPublic Catalog/Pricing/Docs Contract公开 Developer SurfaceCredential 管理、客户调用日志
ConsoleCustomer BFF Contract、公开目录客户控制体验Core/Gateway DB、Workforce Session
StudioProduct Contract、Asset/Run/Canvas 引用Studio 私有聚合与命令Developer 私有控制面、Provider Credential
DramaProduct/Asset/Run/Agent ContractDrama 私有聚合共享钱包或 Asset 第二事实源
CommerceProduct/Asset/Run/MCP ContractCommerce 私有聚合共享钱包或 Channel Secret 第二事实源
AdminWorkforce Query/Command ContractBFF/UI 与 Host-only SessionOperations DB、客户 Session、直接改表
Contracts无运行仓源码依赖版本化 Schema 与生成制品领域实现和环境 Secret
CoreContracts、Gateway Service Contract共享领域事实、事件、私有 Query产品仓源码、Provider 私有协议
API EdgePublic/Internal API Contract、Core Runtime公网协议终止与低敏 Observation业务持久化、Gateway、Provider
Text GatewayGateway Contract、Provider API文本执行与不可变 Evidence客户、售价、钱包、正式 Asset
Media GatewayGateway Contract、Provider API媒体执行与不可变 Evidence客户、售价、钱包、产品 Run
DocsContracts Release 与发布元数据文档站与治理记录运行数据库和客户数据
Infrastructure各仓不可变发布制品环境、网络、部署与证据应用源码耦合、明文 Secret 入库

当前关键依赖

图中的 Infrastructure 箭头表示部署不可变制品,不表示 Infrastructure 成为应用代码依赖;Docs 箭头表示引用固定制品,不表示读取运行时数据库。

Contract 变更门禁

一次跨仓协议变更必须按下列顺序:

  1. Owner 在架构或 ADR 中说明语义与不变量。
  2. Contracts 增加新版本、Canonical Golden、JSON Schema 与负向夹具。
  3. 发布唯一制品,并证明 Registry 与 Release 内容一致。
  4. 生产者兼容新版本但不切换唯一 Writer。
  5. 消费者固定依赖并通过 Contract Test。
  6. Infrastructure 完成目标环境与身份授权。
  7. 在同一门禁切换生产者版本或流量。
  8. 观察完成后才下线旧版本。

严格对象增加字段同样可能是不兼容变化,不能因为字段是 Optional 就自动使用 minor 版本。

禁止边

  • Surface、产品或 Admin 仓导入 Core 源码或直连 Core 数据库。
  • Core 导入 Console、Studio、Drama、Commerce 或 Admin 源码。
  • API Edge 或产品仓绕过 Core 调用 Text/Media Gateway。
  • Gateway 读取客户、Wallet、Developer Access、产品 Run 或正式 Asset 表。
  • 任一仓通过 Git submodule、本地父目录、分支 URL 或复制粘贴维持协议同步。
  • Infrastructure 通过 SQL 修复业务事实,或保存可以直接使用的明文 Secret。

发现非法依赖时先停止新能力接入,明确 Owner 与迁移路径;不能用“临时兼容层”把第二事实源永久化。

On this page