2 unstable releases

0.2.0 Sep 22, 2021
0.1.0 Aug 31, 2021

#199 in Database implementations

MIT license

170KB
5.5K SLoC

cqrs-es2-store

Sync implementation of the cqrs-es2 store.

Publish Test Latest version docs License


Provides sync interfaces to different database implementations for the CQRS system store.

Design

The main components of this library are:

  • IEventDispatcher - an interface for sync events listeners
  • IEventStore - an interface for sync event stores
  • IQueryStore - an interface for sync query stores

Features

  • with-postgres - sync Postgres store
  • with-mysql - sync MySQL store
  • with-sqlite - sync SQLite store
  • with-all-sql - all SQL drivers
  • with-mongodb - sync MongoDB store
  • with-all-doc-db - all doc DBs drivers
  • with-redis - sync Redis store
  • with-all-kv-db - all key-value DBs drivers
  • with-all-sync - all sync drivers (default)

Installation

To use this library in a sync application, add the following to your dependency section in the project's 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
cqrs-es2-store = { version = "*", default-features = false, features = [
   "with-postgres",
 ] }

 # postgres driver
 postgres = { version = "^0.19.1", features = ["with-serde_json-1"] }

Usage

Full sync store example applications are available here.

Change Log

A complete history of the change log can be found here

TODO

An up-to-date list of development aspirations can be found here

Dependencies

~0.8–11MB
~228K SLoC