Skip to content

Releases: eventflow/EventFlow

v0.71.3834

17 Apr 17:24
25d4f04
Compare
Choose a tag to compare
  • Breaking: Commands published from AggregateSaga which return false
    in IExecutionResult.IsSuccess will newly lead to an exception being thrown.
    For disabling all new changes just set protected property
    AggregateSaga.ThrowExceptionsOnFailedPublish to false in your AggregateSaga constructor.
    Also an Exception thrown from any command won't prevent other commands from being executed.
    All exceptions will be collected and then re-thrown in SagaPublishException (even in case
    of just one Exception). The exception structure is following:
    • SagaPublishException : AggregateException
      • .InnerExceptions
        • CommandException : Exception
          • .CommandType
          • .SourceId
          • .InnerException # in case of an exception thrown from the command
        • CommandException : Exception
          • .CommandType
          • .SourceId
          • .ExecutionResult # in case of returned false in IExecutionResult.IsSuccess
            You need to update your ISagaErrorHandler implementation to reflect new exception structure,
            unless you disable this new feature.
  • Fix: MongoDB read store no longer throws an exception on non-existing read models (#625)

v0.70.3824

11 Apr 07:29
Compare
Choose a tag to compare
  • Breaking: Changed target framework to to .NET Framework 4.5.2 for the following NuGet packages,
    as Microsoft has discontinued
    support for .NET Framework 4.5.1
    • EventFlow
    • EventFlow.TestHelpers
    • EventFlow.Autofac
    • EventFlow.Elasticsearch
    • EventFlow.Examples.Shipping
    • EventFlow.Examples.Shipping.Queries.InMemory
    • EventFlow.Hangfire
    • EventFlow.MongoDB
    • EventFlow.MsSql
    • EventFlow.Owin
    • EventFlow.PostgreSql
    • EventFlow.RabbitMQ
    • EventFlow.Sql
    • EventFlow.SQLite
  • New: Added SourceLink support
  • Fix: DispatchToSagas.ProcessSagaAsync use EventId instead of SourceId as SourceId
    for delivery of external event to AggregateSaga
  • Fix: Identity<T>.NewComb() now produces string values that doesn't cause
    too much index fragmentation in MSSQL string columns

v0.69.3772

17 Apr 16:02
ee11a9d
Compare
Choose a tag to compare
  • New: Added configuration option to set the "point of no return" when using
    cancellation tokens. After this point in processing, cancellation tokens
    are ignored:
    options.Configure(c => c.CancellationBoundary = CancellationBoundary.BeforeCommittingEvents)
  • New: Added EventFlowOptions.RunOnStartup<TBootstrap> extension method to
    register IBootstrap types that should run on application startup.
  • New: Support for async read model updates (IAmAsyncReadModelFor).
    You can mix and match asynchronous and synchronous updates,
    as long as you don't subscribe to the same event in both ways.
  • Fix: Added the schema dbo to the eventdatamodel_list_type in script
    0002 - Create eventdatamodel_list_type.sql for EventFlow.MsSql.
  • Fix: LoadAllCommittedEvents now correctly handles cases where the
    GlobalSequenceNumber column contains gaps larger than the page size. This bug
    lead to incomplete event application when using the ReadModelPopulator (see #564).
  • Fix: IResolver.Resolve<T>() and IResolver.Resolve(Type) now throw an
    exception for unregistered services when using EventFlow.DependencyInjection.
  • Minor fix: Fixed stack overflow in ValidateRegistrations when decorator
    components are co-located together with other components that are registed using
    Add*-methods

v0.68.3728

03 Dec 12:54
Compare
Choose a tag to compare
  • Breaking: Changed name of namespace of the projects AspNetCore EventFlow.Aspnetcore
    to EventFlow.AspNetCore
  • Fix: Ignore multiple loads of the same saga

v0.67.3697

14 Oct 18:46
4ff68c1
Compare
Choose a tag to compare
  • New: Expose Lifetime.Scoped through the EventFLow service registration
    interface
  • New: Upgrade NEST version to 6.1.0 and Hangfire.Core to 1.6.20
    Now Elasticsearch provide one index per document. If ElasticsearchTypeAttribute
    is used the index is map with the Name value as an alias.
    When ElasticsearchReadModelStore delete all documents, it will delete
    all indexes linked to the alias.
  • Fix: Internal IoC (remember its just for testing) now correctly invokes
    IDisposable.Dispose() on scope and container dispose

v0.66.3673

01 Oct 06:13
226e05e
Compare
Choose a tag to compare
  • Critical fix: - fix issue where the process using EventFlow could hang using 100% CPU due to unsynchronized Dictionary access, See #541.

v0.65.3664

28 Sep 13:30
3e0c841
Compare
Choose a tag to compare
  • Minor: Performance improvement of storing events for EventFlow.PostgreSql

v0.64.3598

28 Sep 13:30
7b34cd8
Compare
Choose a tag to compare
  • New: Added .NET standard support for SQLite

v0.63.3581

07 Aug 19:27
6116b56
Compare
Choose a tag to compare
  • New: PostgreSQL support in the form of the new EventFlow.PostgreSql NuGet package

v0.62.3569

05 Jul 19:21
c765ba2
Compare
Choose a tag to compare
  • New: Created AggregateReadStoreManager<,,,> which is a new read store manager
    for read models that have a 1-to-1 relation with an aggregate. If read models get
    out of sync, or events are applied in different order, events are either fecthed
    or skipped. Added extensions to allow registration.
    • UseInMemoryReadStoreFor<,,>
    • UseElasticsearchReadModelFor<,,>
    • UseMssqlReadModelFor<,,>
    • UseSQLiteReadModelFor<,,>
  • New: Added ReadModelId and IsNew properties to the context object that is
    available to a read model inside the Apply methods in order to better support
    scenarios where a single event affects multiple read model instances.
  • Minor: Applying events to a snapshot will now have the correct Version set
    inside the Apply methods.
  • Minor: Trying to apply events in the wrong order will now throw an exception.