1 个不稳定版本
0.1.0 | 2020年10月26日 |
---|
#1559 in 异步
99KB
1.5K SLoC
Rust 事件溯源
一组特质和其他实用工具,帮助您在 Rust 中构建事件源应用程序。
什么是事件溯源?
在深入了解 crate 的内部结构之前,您可能想知道事件溯源是什么。
摘自 eventstore.com 介绍
事件溯源是一种正在逐渐流行的架构模式,作为构建现代系统的方法。与传统数据库只存储和更新数据的当前状态不同,事件源系统以事件日志中发生顺序的不可变事件序列存储所有更改,而当前状态是从该事件日志中派生出来的。
eventually
如何支持事件溯源?
eventually
提供了所有必要的抽象,以使用域事件(术语中称为 聚合)来建模您的域实体,并使用 事件存储(即只追加事件日志)来保存这些事件。
有关更多信息,请参阅 crate 文档。
您还可以查看 eventually-app-example
,展示了一个使用 HTTP 传输层的示例事件源微服务。
欢迎在我们的 Gitter 聊天 中提出其他所有问题。
安装
将 eventually
添加到您的项目依赖项中
[dependencies]
eventually = { version = "0.4.0", features = ["full"] }
事件存储后端
eventually
为建模和与事件存储交互提供了必要的抽象。
以下是一些官方支持的后端实现
eventually::inmemory::EventStore
:简单的内存事件存储实现,使用std::collections::HashMap
,eventually-postgres
:适用于 PostgreSQL 数据库的事件存储实现eventually-redis
:适用于 Redis 存储的事件存储实现
关于语义版本控制
此库正在积极开发中,在 v1
版本发布之前,正在采用以下 语义版本控制
- 重大变更以新的
MINOR
版本进行标记 - 新功能、补丁和文档以新的
PATCH
版本进行标记
许可证
本项目采用 MIT 许可证。
贡献
除非您明确声明,否则您提交给 eventually-rs
的任何贡献均以 MIT 许可证授权,不附加任何额外条款或条件。
依赖项
~8–15MB
~201K SLoC