Releases: eventflow/EventFlow
Releases · eventflow/EventFlow
v0.71.3834
- Breaking: Commands published from AggregateSaga which return
false
inIExecutionResult.IsSuccess
will newly lead to an exception being thrown.
For disabling all new changes just set protected property
AggregateSaga.ThrowExceptionsOnFailedPublish
tofalse
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
inIExecutionResult.IsSuccess
You need to update yourISagaErrorHandler
implementation to reflect new exception structure,
unless you disable this new feature.
- CommandException : Exception
- .InnerExceptions
- SagaPublishException : AggregateException
- Fix: MongoDB read store no longer throws an exception on non-existing read models (#625)
v0.70.3824
- 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.1EventFlow
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
useEventId
instead ofSourceId
asSourceId
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
- 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
registerIBootstrap
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 theeventdatamodel_list_type
in script
0002 - Create eventdatamodel_list_type.sql
forEventFlow.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 theReadModelPopulator
(see #564). - Fix:
IResolver.Resolve<T>()
andIResolver.Resolve(Type)
now throw an
exception for unregistered services when usingEventFlow.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
- Breaking: Changed name of namespace of the projects AspNetCore
EventFlow.Aspnetcore
toEventFlow.AspNetCore
- Fix: Ignore multiple loads of the same saga
v0.67.3697
- 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. IfElasticsearchTypeAttribute
is used the index is map with the Name value as an alias.
WhenElasticsearchReadModelStore
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
- Critical fix: - fix issue where the process using EventFlow could hang using 100% CPU due to unsynchronized Dictionary access, See #541.
v0.65.3664
- Minor: Performance improvement of storing events for
EventFlow.PostgreSql
v0.64.3598
- New: Added .NET standard support for SQLite
v0.63.3581
- New: PostgreSQL support in the form of the new
EventFlow.PostgreSql
NuGet package
v0.62.3569
- 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
andIsNew
properties to the context object that is
available to a read model inside theApply
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 theApply
methods. - Minor: Trying to apply events in the wrong order will now throw an exception.