Crate cqrs_es2

Crate cqrs_es2 

Source
Expand description

§cqrs-es2

A Rust library providing lightweight CQRS and event sourcing framework.

Publish Test Latest version docs License


Provides all basic interfaces for the CQRS system.

§Installation

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

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

§Usage

Full fledged demo applications:

Structs§

AggregateContext
Returns the aggregate and context around it that is needed when committing events in an event store implementation.
ConsumerTester
ConsumerTester provides a consistent way to test query implementations
EventContext
EventContext is a data structure that encapsulates an event with along with it’s pertinent information. All of the associated data will be transported and persisted together.
HandlerTester
HandlerTester provides a consistent way to test aggregate implementations
QueryContext
Returns the query and context around it that is needed when committing in a query store implementation.
UserError
Payload for an Error::UserError, somewhat modeled on the errors produced by the validator package. This payload implements Serialize with the intention of allowing the user to return this object as the response payload.

Enums§

Error
The base error for the framework.

Traits§

IAggregate
In CQRS (and Domain Driven Design) an Aggregate is the fundamental component that encapsulates the state and application logic (aka business rules) for the application. An Aggregate is always an entity along with all objects associated with it.
ICommand
An ICommand represents business API call.
ICommandHandler
Command handlers are usually the aggregates. It consumes the command and emit all events resulting from this command.
IEvent
An IEvent represents any business change in the state of an Aggregate. IEvents are immutable and with event sourcing they are the source of truth.
IEventConsumer
Event consumers are usually the queries. It updates its state with the emitted events.
IEventHandler
Event handlers are usually the aggregates. It applies the events to its state.
IQuery
A Query is a read element in a CQRS system. As events are emitted multiple downstream queries are updated to reflect the current state of the system. A query may also be referred to as a ‘view’, the concepts are identical but ‘query’ is used here to conform with CQRS nomenclature.