Skip to content

Releases: atc-net/atc-cosmos-eventstore

Release 1.14.11

09 Dec 09:10
d7a2b1d
Compare
Choose a tag to compare

Added

  • Implement IEventStoreManagementClient.DeleteStreamAsync using the newly released DeleteAllItemsByPartitionKeyStreamAsync method in the Cosmos SDK.
  • Extend CommandContext with the current StreamVersion of the stream.

Release 1.13.3

21 Apr 11:18
52c1cb8
Compare
Choose a tag to compare

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

10 Oct 13:10
73c25b1
Compare
Choose a tag to compare

Fixed

  • RequiredVersion was not respected when command handler was consuming events.

Release 1.11.3

08 Sep 10:29
b5351dc
Compare
Choose a tag to compare
  • Add missing methods in IProjectionBuilder to enable configuration of projection subscription start options.

Release 1.10.3

05 Sep 10:35
4aec976
Compare
Choose a tag to compare

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 and MaxItems received on ever iteration.

Release 1.9.17

03 Jul 12:04
8e91c5e
Compare
Choose a tag to compare

Added

  • Introduced options to provide events async when testing commands using ICommandGiven, ICommandWhen and ICommandThen.
  • 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

02 Jun 09:06
b102e45
Compare
Choose a tag to compare

Fixed

  • Removed writing to stream-index when a new stream is created.

Release 1.7.23

31 May 09:24
3600d2b
Compare
Choose a tag to compare

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> and IConsumeEventAsync<T> by using well known types FaultedEvent and UnknownEvent.
  • Introduced new interfaces IConsumeAnyEvent and IConsumeAnyEventAsync 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 from Metadata.

Release 1.6.8

06 Jul 07:50
c00672a
Compare
Choose a tag to compare

Added

  • Exception delegate for receiving any exception douing a stream subscription.
  • Throws ArgumentException when a projection is missing a ProjectionFilter.
  • BREAKING - IProjection now require you to implement FailedAsync(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

05 Jul 11:39
e32cfeb
Compare
Choose a tag to compare

Added

  • Introduced configuration of custom json converters (#23)