Interface IEventStreamRepository
- Namespace
- Stratara.Abstractions.EventSourcing
- Assembly
- Stratara.Abstractions.dll
Low-level repository over the event_stream_entry table. Implementations live
in the EF Core write-store package; consumers typically go through
IEventSource instead of using this directly.
public interface IEventStreamRepository
- Extension Methods
Methods
AddRangeAsync(IReadOnlyList<EventStreamEntry>, CancellationToken)
Appends entries to the underlying DbContext. Caller is responsible for the transactional save.
Task AddRangeAsync(IReadOnlyList<EventStreamEntry> eventEntries, CancellationToken cancellationToken = default)
Parameters
eventEntriesIReadOnlyList<EventStreamEntry>cancellationTokenCancellationToken
Returns
GetFirstOrDefaultAsync(Guid, CancellationToken)
Returns the first entry of the stream — typically the creation event.
Task<EventStreamEntry?> GetFirstOrDefaultAsync(Guid streamId, CancellationToken cancellationToken = default)
Parameters
streamIdGuidcancellationTokenCancellationToken
Returns
GetLastHashedEventAsync(CancellationToken)
Returns the most recent entry whose hash has been computed.
Task<EventStreamEntry?> GetLastHashedEventAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
GetManyAfterSequenceAsync(long, int, CancellationToken)
Returns up to batchSize entries with a sequence number greater than afterSequenceNumber.
Task<IReadOnlyList<EventStreamEntry>> GetManyAfterSequenceAsync(long afterSequenceNumber, int batchSize, CancellationToken cancellationToken = default)
Parameters
afterSequenceNumberlongbatchSizeintcancellationTokenCancellationToken
Returns
GetManyAsync(Guid, long?, long?, CancellationToken)
Returns entries of the stream filtered by version range, ascending by version.
Task<IReadOnlyList<EventStreamEntry>> GetManyAsync(Guid streamId, long? fromVersion = null, long? toVersion = null, CancellationToken cancellationToken = default)
Parameters
streamIdGuidfromVersionlong?toVersionlong?cancellationTokenCancellationToken
Returns
GetMaxSequenceNumberAsync(CancellationToken)
Returns the maximum sequence number across all streams.
Task<long> GetMaxSequenceNumberAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
GetPreviousEventAsync(long, CancellationToken)
Returns the entry immediately preceding sequenceNumber in stream order.
Task<EventStreamEntry?> GetPreviousEventAsync(long sequenceNumber, CancellationToken cancellationToken = default)
Parameters
sequenceNumberlongcancellationTokenCancellationToken
Returns
GetUnhashedEventsAsync(int, DateTimeOffset, CancellationToken)
Returns up to batchSize entries that have not yet been hashed and are older than cutoff.
Task<IReadOnlyList<EventStreamEntry>> GetUnhashedEventsAsync(int batchSize, DateTimeOffset cutoff, CancellationToken cancellationToken = default)
Parameters
batchSizeintcutoffDateTimeOffsetcancellationTokenCancellationToken
Returns
GetVersionOrDefaultAsync(Guid, CancellationToken)
Returns the head version of the stream, or 0 if it does not exist.
Task<long> GetVersionOrDefaultAsync(Guid streamId, CancellationToken cancellationToken = default)
Parameters
streamIdGuidcancellationTokenCancellationToken
Returns
StreamExistsAsync(Guid, CancellationToken)
Returns true if the stream has at least one entry.
Task<bool> StreamExistsAsync(Guid streamId, CancellationToken cancellationToken = default)
Parameters
streamIdGuidcancellationTokenCancellationToken
Returns
UpdateRange(IReadOnlyList<EventStreamEntry>)
Updates entries already tracked by the underlying DbContext.
void UpdateRange(IReadOnlyList<EventStreamEntry> eventEntries)
Parameters
eventEntriesIReadOnlyList<EventStreamEntry>