其他
事件溯源/CQRS 中构建读模型与投影:把事件流转成可查询视…
适用于在事件溯源/CQRS 系统中构建读模型、物化视图、实时看板、搜索索引、跨流聚合,并优化查询性能。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 57/100 ×0.15
适用场景
事件溯源/CQRS 中构建读模型与投影:通用
解决思路
- 按 Event Store → Projector → Read Model 的架构实现投影:由 Projector 订阅事件,通过 handler 逻辑处理事件,并写入数据库中的表、视图或缓存。
- 实时生成当前状态查询时,使用 Live 投影:从订阅实时消费事件生成读模型。
- 重建读模型时,使用 Catchup 投影:处理历史事件以构建读模型。
- 需要重启后恢复时,使用 Persistent 投影:存储 checkpoint。
- 需要强一致性时,使用 Inline 投影:与写操作在同一事务中执行。
- 需要具体模板和详细示例时,阅读 references/details.md 中的完整模板库和 worked examples。
- 让投影具备幂等性,确保可以安全重放事件。
- 对多表更新使用事务。
- 存储 checkpoint,以便失败后恢复。
- 监控投影延迟,并在投影滞后时告警。
- 为重建做设计,确保读模型可以被重新构造。
- 保持每个投影独立,不要耦合投影。
- 不要跳过错误处理,失败时要记录日志并告警。
- 不要忽略顺序,事件必须按顺序处理。
- 不要过度规范化,应针对查询模式进行反规范化。
适用边界 · 注意事项
- 没有事件存储/事件流,或不是事件溯源系统的场景。
- 只需要简单 CRUD、不需要 CQRS 读侧/物化视图/最终一致性读模型的场景。
- 无法按顺序处理事件或无法持久化 checkpoint 的场景。