#cqrs #event-sourcing #es #ddd

tokio-cqrs-es2-store

异步实现的 cqrs-es2 存储库

7 个版本

0.3.0 2021 年 9 月 22 日
0.2.2 2021 年 9 月 1 日
0.2.1 2021 年 8 月 31 日
0.1.2 2021 年 8 月 30 日

#1165数据库接口

MIT 许可证

185KB
6K SLoC

tokio-cqrs-es2-store

异步实现 cqrs-es2 存储库。

Publish Test Latest version docs License


为 CQRS 系统存储提供对不同数据库实现的异步接口。

设计

该库的主要组件包括

  • IEventDispatcher - 异步事件监听器接口
  • IEventStore - 异步事件存储接口
  • IQueryStore - 异步查询存储接口

特性

  • with-postgres - 异步 Postgres 存储
  • with-mysql - 异步 MySQL 存储
  • with-sqlite - 异步 SQLite 存储
  • with-all-sql - 所有 SQL 驱动
  • with-mongodb - 异步 MongoDB 存储
  • with-all-doc-db - 所有文档数据库驱动
  • with-redis - 异步 Redis 存储
  • with-all-kv-db - 所有键值数据库驱动
  • with-all-async - 所有异步驱动(默认)

安装

要在异步应用程序中使用此库,请将以下内容添加到项目 Cargo.toml 中的依赖项部分

[dependencies]
# logging
log = { version = "^0.4", features = [
  "max_level_debug",
  "release_max_level_warn",
] }
fern = "^0.5"

# serialization
serde = { version = "^1.0.127", features = ["derive"] }
serde_json = "^1.0.66"

async-trait = "^0.1"

# CQRS framework
cqrs-es2 = { version = "*"}

# Sync postgres store implementation
tokio-cqrs-es2-store = { version = "*", default-features = false, features = [
  "with-postgres",
] }

# sqlx
sqlx = { version = "0.5.6", features = [
  # tokio + rustls
  "runtime-tokio-rustls",
  # PostgresSQL
  "postgres",
  "uuid",
  "json",
  # misc
  "macros",
  "chrono",
  "tls",
] }

tokio = { version = "1", features = [
  "rt-multi-thread",
  "time",
  "fs",
  "macros",
  "net",
] }

使用方法

完整的异步存储库示例应用程序

变更日志

完整变更日志的历史记录可以在 此处 找到

待办事项

开发愿望的最新列表可以在 此处 找到

依赖项

~0.7–22MB
~299K SLoC