Package-level declarations

Types

Link copied to clipboard

Abstract base implementation of EventStore that provides common functionality for event storage and retrieval. This class handles logging, validation, and error mapping for event stream operations.

Link copied to clipboard

Interface for scanning aggregate IDs within a named aggregate. Provides functionality to retrieve aggregate IDs in a paginated manner.

Link copied to clipboard
class DuplicateAggregateIdException(val eventStream: DomainEventStream, errorMsg: String = "Duplicate ", cause: Throwable? = null) : WowException

Exception thrown when attempting to create an aggregate with an ID that already exists. This typically occurs when trying to append events for an aggregate that has already been initialized.

Link copied to clipboard

Repository for loading state aggregates using event sourcing. This repository reconstructs the current state of an aggregate by combining snapshots (if available) with event streams from the event store. It supports loading aggregates up to a specific version or event time, enabling point-in-time state reconstruction.

Link copied to clipboard
interface EventStore

Interface for storing and retrieving domain event streams. Provides methods to append events and load event streams by aggregate ID and version/time ranges.

Link copied to clipboard

Repository for loading state aggregates directly from the event store without snapshots. Always starts from an empty state and replays all relevant events.

Link copied to clipboard
class EventVersionConflictException(val eventStream: DomainEventStream, errorMsg: String = "Event Version[", cause: Throwable? = null) : WowException, RecoverableException

Exception thrown when there's a version conflict during event appending. This indicates that the expected version does not match the current version of the aggregate.

Link copied to clipboard

In-memory implementation of EventStore for testing and development purposes. Stores event streams in memory using thread-safe collections.