Async implementation of the cqrs-es2 store.
Provides async interfaces to different database implementations for the CQRS system store.
The main components of this library are:
IEventDispatcher
- an interface for async events listenersIEventStore
- an interface for async event storesIQueryStore
- an interface for async query storeswith-sqlx-postgres
- async Postgres storewith-sqlx-mysql
- async MySQL storewith-sqlx-sqlite
- async SQLite storewith-all-sqlx
- all sqlx driverswith-mongodb
- async MongoDB storewith-all-doc-db
- all doc DBs driverswith-redis
- async Redis storewith-all-kv-db
- all key-value DBs driverswith-all-async
- all async drivers (default)To use this library in an async application, add the following to
your dependency section in the project's Cargo.toml
:
```toml [dependencies]
log = { version = "^0.4", features = [ "maxleveldebug", "releasemaxlevel_warn", ] } fern = "^0.5"
serde = { version = "^1.0.127", features = ["derive"] } serde_json = "^1.0.66"
async-trait = "^0.1"
cqrs-es2 = { version = "*"}
tokio-cqrs-es2-store = { version = "*", default-features = false, features = [ "with-sqlx-postgres", ] }
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", ] } ```
Full async store example applications:
A complete history of the change log can be found here
An up-to-date list of development aspirations can be found here