Releases: eventflow/EventFlow
Releases · eventflow/EventFlow
v0.77.4077
- New: The
EventFlow.AspNetCoreNuGet package now has ASP.NET Core 3 support
v0.76.4014
- New: Mongo DB read model store Queryable:
MongoDbReadModelStore readModelStore; IQueryable<TReadModel> queryable = readModelStore.AsQueryable();
- New: Moved publish of messages in
RabbitMqPublisherto a new virtual
method to ease reuse and customization - Fixed: MongoDB read models no longer has the
new()generic requirement,
which aligns read model requirements with the rest of EventFlow
v0.75.3970
- Fix: When deserializing the JSON value
"null"into a struct value like
int, theSingleValueObjectConverterthrew an exception instead of
merely returningnullrepresenting an absentSingleValueObject<int>value
v0.74.3948
- Breaking: Renamed
AspNetCoreEventFlowOptions.AddMetadataProviders()
toAddDefaultMetadataProviders()and madeAddUserClaimsMetadataopt-in
in order to prevent policy issues. - Fix: Allow explicit implementations of
IEmit<>in aggregate roots - Fix: Using
.AddAspNetCore()with defaults now doesn't throw a DI
exception.
v0.73.3933
- New: Configure JSON serialization:
EventFlowOptions.New. .ConfigureJson(json => json .AddSingleValueObjects() .AddConverter<SomeConverter>() )
- New: ASP.NET Core enhancements:
- New fluent configuration API for ASP.NET Core components:
services.AddEventFlow(o => o.AddAspNetCore(c => {...}));(old syntax
AddAspNetCoreMetadataProvidersis now deprecated). .RunBootstrapperOnHostStartup()runs bootstrappers together with ASP.NET
host startup. Previously, this was done inAddAspNetCoreMetadataProviders
and led to some confusion..UseMvcJsonOptions()adds EventFlow JSON configuration (see below) to ASP.NET Core,
so you can accept and return Single Value Objects as plain strings for example..Add{Whatever}Metadata()configures specific metadata provider..AddUserClaimsMetadata(params string claimTypes)configures the new claims metadata
provider (for auditing or "ChangedBy" in read models)..UseLogging()configures an adapter for Microsoft.Extensions.Logging.UseModelBinding()adds model binding support for Single Value Objects:[HttpGet("customers/{id}")] public async Task<IActionResult> SingleValue(CustomerId id) { if (!ModelState.IsValid) { return BadRequest(ModelState); }
- New fluent configuration API for ASP.NET Core components:
- Fix: ASP.NET Core
AddRequestHeadersMetadataProviderdoesn't throw when
HttpContext is null. - Fix:
ReadModelRepopulatornow correctly populatesIAmAsyncReadModelFor
v0.72.3914
- New:
EventFlow.TestHelpersare now released as .NET Standard as well - Fix: Upgrade
EventStore.Clientto v5.0.1 and use it for both .NET Framework and .NET Core - Fix: Storing events in MS SQL Server using
MsSqlEventPersistencenow correctly
handles non-ANSI unicode characters in strings. - Fix: Source link integration now works correctly
v0.71.3834
- Breaking: Commands published from AggregateSaga which return
false
inIExecutionResult.IsSuccesswill newly lead to an exception being thrown.
For disabling all new changes just set protected property
AggregateSaga.ThrowExceptionsOnFailedPublishtofalsein 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
falseinIExecutionResult.IsSuccess
You need to update yourISagaErrorHandlerimplementation 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.1EventFlowEventFlow.TestHelpersEventFlow.AutofacEventFlow.ElasticsearchEventFlow.Examples.ShippingEventFlow.Examples.Shipping.Queries.InMemoryEventFlow.HangfireEventFlow.MongoDBEventFlow.MsSqlEventFlow.OwinEventFlow.PostgreSqlEventFlow.RabbitMQEventFlow.SqlEventFlow.SQLite
- New: Added SourceLink support
- Fix:
DispatchToSagas.ProcessSagaAsyncuseEventIdinstead ofSourceIdasSourceId
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
registerIBootstraptypes 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
dboto theeventdatamodel_list_typein script
0002 - Create eventdatamodel_list_type.sqlforEventFlow.MsSql. - Fix:
LoadAllCommittedEventsnow correctly handles cases where the
GlobalSequenceNumbercolumn 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
ValidateRegistrationswhen 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