用途:为 Convex 项目提供 DDD 与六边形架构的组织参考,将领域逻辑与数据库、外部 API 关注点隔离,使变更局部化、演进更安全。适用于新 Convex 子域设计(schema、queries、mutations、domain、adapters)、遗留代码向 DDD/六边形边界迁移、业务规则从 handler 回归聚合、ctx.db 访问收敛到 repository、需要重试/编排/翻译层的外部 API 调用,以及团队统一文件布局与命名。小型原型不建议套用。
主要能力:给出项目目录结构(convex/ 下 _shared、_triggers.ts、customFunctions.ts、schema.ts 及各 camelCase 子域文件夹,含 _tables.ts、_triggers.ts、_seeds.ts、_workflows.ts、queries/、mutations/、domain/、adapters/);命名规则(文件 camelCase,非领域文件加下划线前缀,导出用领域词汇);核心模式包括自定义函数边界(从 customFunctions.ts 导入 mutation/query/internalMutation,而非 _generated/server)、每文件一个函数并 export default、前端用 .default 后缀调用、schema 由各子域 _tables 组合、domain/repository/adapter 分工、触发器与工作流安全(单向流:UI mutation → 调度 action/workflow → mutation → 响应式 query)。
使用方式:先阅读 references/examples.md 的完整示例(invoice 域、RPG 游戏),再按需查阅 domain-models.md、repositories.md、adapters.md、triggers.md、migrations.md、custom-functions.md、naming.md、value-objects.md、eslint-rules.md。
限制:不适用于追求速度的小型原型;引入必填 schema 字段需配合分阶段迁移策略;_tables.ts 只写 defineTable(NewXModel.fields) 与索引,字段定义放在领域模型文件;新子域应参照 examples.md 而非可能早于规范的相邻代码。具体安装命令与收费信息暂未提供。