Namespace Cqrs.Domain
Classes
AggregateRepository<TAuthenticationToken>
Provides basic repository methods for operations with instances of IAggregateRoot<TAuthenticationToken> using an IEventStore<TAuthenticationToken> that also publishes events once saved.
AggregateRoot<TAuthenticationToken>
A larger unit of encapsulation than just a class. Every transaction is scoped to a single aggregate. The lifetimes of the components of an aggregate are bounded by the lifetime of the entire aggregate.
Concretely, an aggregate will handle commands, apply events, and have a state model encapsulated within it that allows it to implement the required command validation, thus upholding the invariants (business rules) of the aggregate.
DtoAggregateRoot<TAuthenticationToken, TDto>
An IAggregateRoot<TAuthenticationToken> for operating on IDto instances.
Saga<TAuthenticationToken>
An independent component that reacts to domain IEvent<TAuthenticationToken> in a cross-IAggregateRoot<TAuthenticationToken>, eventually consistent manner. Time can also be a trigger. A Saga<TAuthenticationToken> can sometimes be purely reactive, and sometimes represent workflows.
From an implementation perspective, a Saga<TAuthenticationToken> is a state machine that is driven forward by incoming IEvent<TAuthenticationToken> (which may come from many AggregateRoot<TAuthenticationToken> or other Saga<TAuthenticationToken>). Some states will have side effects, such as sending ICommand<TAuthenticationToken>, talking to external web services, or sending emails.
SagaEventHandler<TAuthenticationToken, TSaga>
A process manager that you can implement IEventHandler instances on top of.
SagaRepository<TAuthenticationToken>
Provides basic repository methods for operations with instances of ISaga<TAuthenticationToken>.
SagaUnitOfWork<TAuthenticationToken>
Provides a basic container to control when IEvent<TAuthenticationToken> are store in an IEventStore<TAuthenticationToken> and then published on an IEventPublisher<TAuthenticationToken>.
UnitOfWork<TAuthenticationToken>
Provides a basic container to control when IEvent<TAuthenticationToken> are store in an IEventStore<TAuthenticationToken> and then published on an IEventPublisher<TAuthenticationToken>.
Interfaces
IAggregateRepository<TAuthenticationToken>
Provides basic repository methods for operations with instances of IAggregateRoot<TAuthenticationToken>.
IAggregateRoot<TAuthenticationToken>
An IAggregateRoot<TAuthenticationToken> is a larger unit of encapsulation than just a class. Every transaction is scoped to a single aggregate. The lifetimes of the components of an IAggregateRoot<TAuthenticationToken> are bounded by the lifetime of the entire IAggregateRoot<TAuthenticationToken>.
Concretely, an IAggregateRoot<TAuthenticationToken> will handle ICommand<TAuthenticationToken>s, apply IEvent<TAuthenticationToken>s, and have a state model encapsulated within it that allows it to implement the required command validation, thus upholding the invariants (business rules) of the IAggregateRoot<TAuthenticationToken>.
IDto
A basic data transfer object suitable for CRUD operations.
ISaga<TAuthenticationToken>
An independent component that reacts to domain IEvent<TAuthenticationToken> in a cross-IAggregateRoot<TAuthenticationToken>, eventually consistent manner. Time can also be a trigger. A Saga<TAuthenticationToken> can sometimes be purely reactive, and sometimes represent workflows.
From an implementation perspective, a Saga<TAuthenticationToken> is a state machine that is driven forward by incoming IEvent<TAuthenticationToken> (which may come from many AggregateRoot<TAuthenticationToken> or other Saga<TAuthenticationToken>). Some states will have side effects, such as sending ICommand<TAuthenticationToken>, talking to external web services, or sending emails.
ISagaRepository<TAuthenticationToken>
Provides basic repository methods for operations with instances of ISaga<TAuthenticationToken>.
ISagaUnitOfWork<TAuthenticationToken>
This is a Unit of Work for sagas
IUnitOfWork<TAuthenticationToken>
Provides a basic container to control when IEvent<TAuthenticationToken> are store in an IEventStore<TAuthenticationToken> and then published on an IEventPublisher<TAuthenticationToken>.