All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.12.6 - 2023-10-10
RequiredVersion
was not respected when command handler was consuming events.
1.11.3 - 2023-09-08
- Add missing methods in
IProjectionBuilder
to enable configuration of projection subscription start options.
1.10.3 - 2023-09-05
- Support for controlling the start time from where a new event subscription or projection should start receiving changes. By default, it will start from the beginning of time to preserve backwards compatibility.
services.AddEventStore(builder =>
{
builder.UseCosmosDb();
builder.UseEvents(c => c.FromAssembly<MyEvent>());
builder.UseCQRS(c =>
{
c.AddProjectionJob<MyProjection>(
"super-projection-name",
c => c.WithProjectionStartsFrom(
SubscriptionStartOptions.FromBegining)); // setting the start time
});
});
- Controlling projection
PollingInterval
andMaxItems
received on ever iteration.
1.9.17 - 2023-07-03
- Introduced options to provide events async when testing commands using
ICommandGiven
,ICommandWhen
andICommandThen
. - Introduce hard limits to the number of events the system can accept per operation.
- A maximum of 10 events per command context (CQRS)
- A maximum of 50 events per stream batch (Event Store)
- Fixed issue where adding two or more projections with the same class name would override their configurations resulting in the "dead" projections.
1.8.3 - 2023-06-02
- Removed writing to stream-index when a new stream is created.
1.7.23 - 2023-05-31
- Pipeline for controlling event data convertion
IEventDataConverter
- Added custom event data converters to be configured using
EventStoreOptions
. This will enable scenarioes such as converting from one version of an event to another. - Unknown or invalid events can now be observed through the
IConsumeEvent<T>
andIConsumeEventAsync<T>
by using well known typesFaultedEvent
andUnknownEvent
. - Introduced new interfaces
IConsumeAnyEvent
andIConsumeAnyEventAsync
for consuming any event without specifying it type. - Command processor is now registered as singleton, eliminating the need for using ICommandProcessorFactory.
- Optionally configure cosmos client to accept any server certificate when using emulator.
- Raise condition when 2 command processors tries to add the first event to the same stream concurrently.
- Rerunning command now create a new instance of the command processor to clear out any previous state it might contain.
- Setting
ConfigurationString
when configuring event store options. EventId
has been removed fromMetadata
.
1.6.8 - 2022-07-06
- Exception delegate for receiving any exception douing a stream subscription.
- Throws
ArgumentException
when a projection is missing aProjectionFilter
. - BREAKING -
IProjection
now require you to implementFailedAsync(Exception exception, CancellationToken cancellationToken)
and instruct the framework on how to proceed when encountering an exception. - Convenience extension methods to CommandContext.
1.5.3 - 2022-07-05
- Introduced configuration of custom json converters (#23)
1.4.5 - 2022-03-18
- Fixed issue where projection will not start do to missing dependency registration.
- Enhanced documentation for
EventStoreClientOptions
and fix spelling. - Dependencies for
Microsoft.Azure.Cosmos
has been upgraded from3.23.0
to3.26.1
. - Dependencies for
System.Text.Json
has been upgraded from6.0.1
to6.0.2
.
1.3.3 - 2022-01-31
- Fixed issue where using
UseCredentials
when configuring event store would not work.
1.2.9 - 2022-01-30
- Support for Token Credentials with Comos DB using
UseCredentials
methods on options class.
- EventStore
ConnectionString
option has been made obsolete, please useUseCredentials
orUseCosmosEmulator
instead.
- Support for Token Credentials with Comos DB using
UseCredentials
methods on options class.
- EventStore
ConnectionString
option has been made obsolete, please useUseCredentials
orUseCosmosEmulator
instead.