https://github.com/berkaroad/aggregatesnapshotstore
聚合根快照存储接口,用于使用事件源的CQRS,提高C端聚合根实例加载速度
https://github.com/berkaroad/aggregatesnapshotstore
aggregate cqrs cqrs-es eventsourcing mysql snapshot sqlserver
Last synced: 3 months ago
JSON representation
聚合根快照存储接口,用于使用事件源的CQRS,提高C端聚合根实例加载速度
- Host: GitHub
- URL: https://github.com/berkaroad/aggregatesnapshotstore
- Owner: berkaroad
- License: mit
- Created: 2020-05-12T23:07:24.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-29T20:47:04.000Z (over 4 years ago)
- Last Synced: 2025-06-14T17:17:54.226Z (4 months ago)
- Topics: aggregate, cqrs, cqrs-es, eventsourcing, mysql, snapshot, sqlserver
- Language: C#
- Homepage:
- Size: 57.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AggregateSnapshotStore
聚合根快照存储接口,用于使用事件源的CQRS,提高C端聚合根实例加载速度。## 安装
```
dotnet add package AggregateSnapshotStore
```## 使用流程
- 将需要建快照的聚合根,在订阅领域事件时,将快照头信息入快照请求队列 `IAggregateSnapshotRequestQueue`
- 由 `IAggregateSnapshotRequestFilter` 进行筛选,只保留需要建快照的快照头信息
- 最后通过 `IAggregateSnapshotSaver` 将最近一次快照 + 中间产生的事件流,通过事件重放,产生新的快照,保存到 `IAggregateSnapshotStore`。
## 存储实现
只要实现接口 `IAggregateSnapshotStore`即可。
### AggregateSnapshotStore.SqlServer
基于 SqlServer 的聚合根快照存储实现,支持按聚合根ID作为ShardKey,进行单库水平拆分多表。[AggregateSnapshotStore.SqlServer](src/AggregateSnapshotStore.SqlServer/README.md)
### AggregateSnapshotStore.MySQL
基于 MySQL 的聚合根快照存储实现,支持按聚合根ID作为ShardKey,进行单库水平拆分多表。[AggregateSnapshotStore.MySQL](src/AggregateSnapshotStore.MySQL/README.md)
### AggregateSnapshotStore.Redis
基于 Redis 的聚合根快照存储实现。[AggregateSnapshotStore.Redis](src/AggregateSnapshotStore.Redis/README.md)
## 发布历史
### 1.0.1(2020/5/16)
- 优化 `DefaultAggregateSnapshotRequestProcessor`: 未运行时阻止入队;停止时,再次处理队列数据,直至清空
### 1.0.0(2020/5/13)
初版