Eventstore backed by IndexedDB

Typedefs

AggregateBuilder(Guid aggregateId) AggregateRoot

Function that returns a bare aggregate root for the supplied aggregateId

ChangeHandler(DomainEvent event) → dynamic

ContentEnricher(Message message) → dynamic

Function responsible for enriching a Message with extra data, such as session tokens before its fired

MessageEnricher(Message message) → dynamic

Called automatically by MessageBus prior to dispatching messages to MessageHandler's. Allows us to augment a Message with missing information such as session id, user information etc.

MessageErrorHandler(Object object) → void

Function invoked when a message subscriber fails

MessageHandler(Message message) → dynamic

Function executed when a message is fired on the MessageBus

ProcessCreator(MessageBus messageBus) Process

Create processes running on messageBus

StepCreator() Step

Used by Process to creating Step's each time they are needed to perform work or compensate

Functions

typeNameOf(Object obj) → String

Classes

AggregateRoot

The root of an object tree (aggregate)

ApplicationCommand

Application commands are not part of the CQRS event chain (and are thus not handled by ordinary command handlers). They serve the same purpose within the application as ordinary commands (to signal that something should be done).

ApplicationEvent

Application events are not part of the CQRS event chain (and thus not persisted). They serve the same purpose within the application as ordinary events (to signal that something has happend).

CallbackCompleted

Mixin for messages that are completed manually by their subscribers

DomainCommand

Commands represents a serialized method call and are created by the application. Commands are usually written in the imperative tense and cannot be persisted as they can have possible side effects

DomainEvent

Events that can be stored, ususally named in the past tense as they describe a event that has taken place

DomainRepository

Repository that stores and retrieves domain objects (aggregates) by their events.

EventSourcedEntity

Event sourced entity that is part of a aggregate (but not the root)

EventStore

Facade for creating and accessing EventStreams

EventStream

Track a series of events and commit them to durable storage

Guid

Wrap external Uuid library into own class, until Dart provides its own official implementation

IdbEventStore

Indexed DB backed event store.

Identifiable

Marker interface than can optionally be put on models to ensure they can be saved in the model repository.

MemoryEventStore

Memory backed event store

MemoryModelRepository

Memory backed model repository

Message

Message

MessageBus

Message bus for registrering and routing Message's to their MessageHandler

MessageCoordinator

Coordinate delivery of messages to listeners so we can notify completers of their delivery

MessageStream

Stream that notifies MessageStreamSubscription when new subscriptions are added for messages of type messageType

MessageStreamController

Wrapper for creating and accessing the Sink and Streams used to handle messages of type messageType

MessageStreamSink

Sink that notifies MessageCoordinator when messages of type messageType are dispatched

MessageStreamSubscription

ModelRepository

Repository for working with read-models

Process

Processes are used to model long running business processes where multiple steps (commands) needs to be executed in sequence. The actual work done in the process is performed by the commands executed in each step, thus a step should effectivly not contain any business logic but only dispatch commands to carry out the actual work.

ProcessManager

Create and manage life cycle of long running processes

ProcessPrototype

Reusable description of a process that can be run repeatedly

StatusCallback

Generic callback to communicate success or failure

Step

A step in a business process (see Process) responsible carrying out a atomic piece of work. Steps have the responsibility of

WorkItem

WorkLog

Log of the work executed by a step

Exceptions / Errors

ConcurrencyError

Optimistic concurrency conflict between multiple writers.