用途:该技能用于从事件流构建读模型与投影,适用于实现 CQRS 读端、创建物化视图、优化查询性能、构建实时仪表盘、从事件生成搜索索引以及跨流聚合数据。
主要能力:介绍投影架构(事件存储→投影器→读模型数据库);区分投影类型,包括实时(订阅实时处理,用于当前状态查询)、追赶(处理历史事件,用于重建读模型)、持久化(存储检查点,重启后恢复)、内联(与写入同事务,强一致性)。提供五类 Python 模板:基础投影器(含 Projection 抽象基类与 Projector 运行器,支持注册、批量运行与重建)、订单摘要投影、Elasticsearch 搜索投影、按日聚合的销售投影、跨多表事务的客户活动投影。
使用方式:定义继承 Projection 的类,实现 name、handles 与 apply;用 Projector 注册并运行,通过 checkpoint_store 保存与读取全局位置,支持 rebuild 从零重建。模板中给出 asyncpg 与 elasticsearch 的异步用法示例。
最佳实践:投影应幂等、可安全重放;多表更新使用事务;存储检查点以便失败后恢复;监控投影延迟;为重建做设计。避免投影间耦合、跳过错误处理、忽略事件顺序、过度规范化。
限制:资料未提供具体安装命令、依赖版本、收费或平台信息;示例基于 Python、asyncpg 与 Elasticsearch,其他语言或存储的适配暂未提供。