用途:该技能用于设计与实现命令查询职责分离(CQRS)模式,将写入模型与读取模型分离,以应对复杂读写场景与可扩展性需求。
主要能力:
- 介绍三种 CQRS 层级:一为逻辑分离(同一数据库、代码路径分离);二为独立读模型(同一写入库、独立读取库、最终一致);三为事件溯源 CQRS(事件存储为写入模型、投影为读模型)。
- 命令侧设计:命令定义与处理器、命名规范(如 PlaceOrder、CancelOrder)、不可变结构、验证与幂等性建议。
- 查询侧设计:查询定义与处理器,以及反规范化、物化视图、缓存、专用存储(ElasticSearch、Redis、ClickHouse)等读模型优化策略。
- 同步与一致性:基于事件的投影示例,提供强一致、最终一致、混合(读己之写)三种方案说明。
- 提供 MediatR 集成示例,含命令/查询接口、处理器接口与验证、日志管道行为。
- 给出 REST API 设计模式:命令用 POST/PUT/DELETE,查询用 GET。
- 适用与不适用场景:适合读写复杂度高、多视图、协作型领域、事件驱动与需独立扩展读写的系统;不适合简单 CRUD、小团队项目、需强一致的实时或金融交易、查询模式未知的临时报表场景。
使用方式:资料要求先执行文档优先流程,调用 docs-management 技能获取 CQRS 模式,并通过 MCP 服务器(perplexity、context7)验证模式,再基于既有 CQRS 文献实施。工作流为:评估适用性、选择层级、设计命令、设计查询、规划同步、实现管道、考虑一致性、对两侧分别测试。
限制:资料未提供具体的安装命令、依赖版本或可直接运行的完整工程配置;示例为 .NET/C# 语境。资料未提供收费、价格或平台信息。