Skip to content

Interface IEventStore

Namespace: Cephalon.Abstractions.EventSourcing
Assembly: Cephalon.Abstractions.dll

Appends and replays immutable domain events for one logical event store.

public interface IEventStore

AppendAsync(string, IReadOnlyCollection<IDomainEvent>, long, CancellationToken)

Section titled “ AppendAsync(string, IReadOnlyCollection<IDomainEvent>, long, CancellationToken)”

Appends one or more events to the requested stream after checking the expected version.

Task AppendAsync(string streamId, IReadOnlyCollection<IDomainEvent> events, long expectedVersion, CancellationToken cancellationToken = default)

streamId string

The stable stream identifier.

events IReadOnlyCollection<IDomainEvent>

The events to append.

expectedVersion long

The current stream version expected by the caller. Use -1 to require a brand-new stream.

cancellationToken CancellationToken

The token that cancels the operation.

Task

A task that completes when the append finishes.

GetVersionAsync(string, CancellationToken)

Section titled “ GetVersionAsync(string, CancellationToken)”

Gets the latest version known for the requested stream.

Task<long> GetVersionAsync(string streamId, CancellationToken cancellationToken = default)

streamId string

The stable stream identifier.

cancellationToken CancellationToken

The token that cancels the operation.

Task<long>

A task that returns the current stream version, or -1 when the stream does not exist.

ReadStreamAsync(string, long, CancellationToken)

Section titled “ ReadStreamAsync(string, long, CancellationToken)”

Reads the requested stream from the supplied version onward.

IAsyncEnumerable<IDomainEvent> ReadStreamAsync(string streamId, long fromVersion = 0, CancellationToken cancellationToken = default)

streamId string

The stable stream identifier.

fromVersion long

The first stream version to include. The default is 0.

cancellationToken CancellationToken

The token that cancels the operation.

IAsyncEnumerable<IDomainEvent>

An async sequence of domain events in ascending stream-version order.