# Functions
NewAggregateRoot constructor for *AggregateRoot.
NewAggregateRootRepository constructs a new AggregateRootRepository.
NewMaxChangesSnapshotStrategy constructs a new SnapshotStrategy with "max changes" rules.
WithAggregateRootID is an option to set the ID of the AggregateRoot.
# Variables
DefaultSnapshotStrategy is a strategy that triggers snapshots every 10 changes.
ErrAggregateNotFound is returned when no root was found for a given aggregate id.
ErrAggregateVersionMismatch should be returned by stores when new events cannot be appended due to version conflicts.
ErrPendingChanges is the error returned when a second command is applied to an aggregate without clearing changes.
# Structs
AggregateBase provides aggregates a base to build on.
AggregateRoot is the base for Aggregates.
AggregateRootRepository uses stores to load and save the changes to aggregates as events.
# Interfaces
Aggregate is a domain object that will be used at the base of other domain objects.
AggregateRepository interface.
AggregateRootStore is the interface that infrastructures should implement to be used in AggregateRootRepositories.
SnapshotStrategy interface.
# Type aliases
AggregateRootOption options for AggregateRoots.
AggregateRootStoreMiddleware interface for embedding stores.