Releases: atc-net/atc-cosmos-eventstore
Releases · atc-net/atc-cosmos-eventstore
Release 1.14.11
Added
- Implement
IEventStoreManagementClient.DeleteStreamAsync
using the newly releasedDeleteAllItemsByPartitionKeyStreamAsync
method in the Cosmos SDK. - Extend
CommandContext
with the currentStreamVersion
of the stream.
Release 1.13.3
Added
- Introduce instrumentation support for Open Telemetry.
builder
.Services
.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddRuntimeInstrumentation();
})
.WithTracing(tracing =>
{
if (builder.Environment.IsDevelopment())
{
// We want to view all traces in development
tracing.SetSampler(new AlwaysOnSampler());
}
tracing
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSource(EventStoreDiagnostics.SourceName); // enable trace telemetry from event store and cqrs.
});
Release 1.12.6
Fixed
RequiredVersion
was not respected when command handler was consuming events.
Release 1.11.3
- Add missing methods in
IProjectionBuilder
to enable configuration of projection subscription start options.
Release 1.10.3
Added
- 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.
Release 1.9.17
Added
- 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
- Fixed issue where adding two or more projections with the same class name would override their configurations resulting in the "dead" projections.
Release 1.8.3
Fixed
- Removed writing to stream-index when a new stream is created.
Release 1.7.23
Added
- 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.
Fixed
- 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.
Removed
- Setting
ConfigurationString
when configuring event store options. EventId
has been removed fromMetadata
.
Release 1.6.8
Added
- 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.
Release 1.5.3
Added
- Introduced configuration of custom json converters (#23)