Releases: eventflow/EventFlow
v1.0.5001-alpha
IMPORTANT: Major API breaking changes might occur between 1.0 pre-releases. As breaking
API changes will need to be tested and verified before the final 1.0 release.
Read the complete migration guide to get the full list of changes as well
as recommendations on how to do the migration.
https://github.com/eventflow/EventFlow/blob/develop-v1/MIGRATION_GUIDE.md
- New/breaking: Replace internal IoC implementation with
Microsoft.Extensions.DependencyInjection - New/breaking: Replace internal logging implementation with
Microsoft.Extensions.Logging - New/breaking: SQL read models now support different connection strings using the
[SqlReadModelConnectionStringName]attribute. To allow executing queries using different
connection strings, all methods onIMsSqlConnectionandISqlConnectionnow have an
additional argument,string connectionStringNameto signify which connection string
should be used for the query - New/breaking: SQL connection strings are now fetched from the
SqlConfiguration<T>.GetConnectionStringAsync(...)instead of a property, allowing more
control of the connection string used at runtime - New: Its now possible to change the execution timeout for database migrations using the
SetUpgradeExecutionTimeout(...)on the SQL configuration - Breaking: Removed the following dead and/or confusion MSSQL attributes. The real ones
are named the same, with withSql...instead ofMsSql...MsSqlReadModelIdentityColumnMsSqlReadModelIgnoreColumnMsSqlReadModelVersionColumn
- Breaking: Methods on
IMsSqlDatabaseMigratorandISqlDatabaseMigratorhave been
made async and have an extraCancellationTokenargument - Breaking: Remove support for .NET Framework and consolidate on .NET (Core) LTS versions
- Breaking: Replace internal in-memory caching with
Microsoft.Extensions.Caching.Memory - Breaking: Removed
IAmAsyncReadModelForand madeIAmReadModelForasync - Breaking: Removed
EventFlow.Core.AsyncHelperas well as all async wrapper methods
that used itIAggregateStore.LoadIAggregateStore.StoreIAggregateStore.UpdateICommandBus.PublishIEventStore.LoadAggregateIEventStore.LoadEventsIEventStore.LoadAllEventsIQueryProcessor.ProcessIReadModelPopulator.PopulateIReadModelPopulator.Purge
- Version of 0.x included:
0.83.4713. 0.x changes are merged to 1.x at regular
intervals, but might be one or two releases behind
v1.0.4748-alpha
IMPORTANT: Major API breaking changes might occur between 1.0 pre-releases. As breaking
API changes will need to be tested and verified before the final 1.0 release.
Read the complete migration guide to get the full list of changes as well
as recommendations on how to do the migration.
https://github.com/eventflow/EventFlow/blob/develop-v1/MIGRATION_GUIDE.md
- New/breaking: Replace internal IoC implementation with
Microsoft.Extensions.DependencyInjection - New/breaking: Replace internal logging implementation with
Microsoft.Extensions.Logging - New/breaking: SQL read models now support different connection strings using the
[SqlReadModelConnectionStringName]attribute. To allow executing queries using different
connection strings, all methods onIMsSqlConnectionandISqlConnectionnow have an
additional argument,string connectionStringNameto signify which connection string
should be used for the query - New/breaking: SQL connection strings are now fetched from the
SqlConfiguration<T>.GetConnectionStringAsync(...)instead of a property, allowing more
control of the connection string used at runtime - New: Its now possible to change the execution timeout for database migrations using the
SetUpgradeExecutionTimeout(...)on the SQL configuration - Breaking: Removed the following dead and/or confusion MSSQL attributes. The real ones
are named the same, with withSql...instead ofMsSql...MsSqlReadModelIdentityColumnMsSqlReadModelIgnoreColumnMsSqlReadModelVersionColumn
- Breaking: Methods on
IMsSqlDatabaseMigratorandISqlDatabaseMigratorhave been
made async and have an extraCancellationTokenargument - Breaking: Remove support for .NET Framework and consolidate on .NET Core LTS versions
- Breaking: Replace internal in-memory caching with
Microsoft.Extensions.Caching.Memory - Breaking: Removed
IAmAsyncReadModelForand madeIAmReadModelForasync - Breaking: Removed
EventFlow.Core.AsyncHelperas well as all async wrapper methods
that used itIAggregateStore.LoadIAggregateStore.StoreIAggregateStore.UpdateICommandBus.PublishIEventStore.LoadAggregateIEventStore.LoadEventsIEventStore.LoadAllEventsIQueryProcessor.ProcessIReadModelPopulator.PopulateIReadModelPopulator.Purge
- Version of 0.x included:
0.83.4713. 0.x changes are merged to 1.x at regular
intervals, but might be one or two releases behind
v0.83.4713
- New: Queue name used by HangfireJobScheduler can be overridden:
eventFlowOptions.UseHangfireJobScheduler(o => o.UseQueueName("myqueue"))
- Fixed: Do not throw
MetadataKeyNotFoundExceptionif there is no meta data on
previous_source_idsin snapshots
v0.82.4684
- Fix: Allow the use of explicitly implemented interfaces in the read model
- New: added extension methods to the
EventFlow.EntityFrameworkpackage that allow
us to configure eager loading of related data. Example usage:public static IEventFlowOptions Configure(this IEventFlowOptions options) { return options .UseEntityFrameworkReadModel<MyEntity, MyDbContext>( cfg => cfg.Include(x => x.SomeProperty) .ThenInclude(y => y.SomeOtherProperty) ); }
v0.82.4659
- Fix: Source IDs are now added to snapshots
- Fix: InMemoryReadStore will not break on unmodified update result
v1.0.4617-alpha
Read the complete migration guide to get the full list of changes as well
as recommendations on how to do the migration.
https://github.com/eventflow/EventFlow/blob/develop-v1/MIGRATION_GUIDE.md
- Breaking: Remove support for .NET Framework and consolidate on .NET Core LTS versions
- Breaking: Replace internal IoC implementation with
Microsoft.Extensions.DependencyInjection - Breaking: Replace internal logging implementation with
Microsoft.Extensions.Logging - Breaking: Replace internal in-memory caching with
Microsoft.Extensions.Caching.Memory - Breaking: Remove
IAmAsyncReadModelForand madeIAmReadModelForasync - Breaking: Removed
EventFlow.Core.AsyncHelperas well as all async wrapper methods
that used it.IAggregateStore.LoadIAggregateStore.StoreIAggregateStore.UpdateICommandBus.PublishIEventStore.LoadAggregateIEventStore.LoadEventsIEventStore.LoadAllEventsIQueryProcessor.ProcessIReadModelPopulator.PopulateIReadModelPopulator.Purge
v0.81.4483
- Breaking: Elasticsearch NEST Nuget Library updated from v6.1.0 to v7.8.2
- New: Now possible to implement error handlers for specific sagas using
ISagaErrorHandler<TSaga> - Fixed: You can now create
Id : Identity<Id>
v0.80.4377
- Breaking: To support .NET going forward, all EventFlow test have been converted
from .NET Framework 4.x to .NET Core 3.1. This however, introduced a set of
breaking changes- EntityFramework has been updated from 2.2.6 to 3.1.5
IHangfireJobRunner.Executeis nowIHangfireJobRunner.ExecuteAsync
- Breaking: Merged
AggregateReadStoreManagerandSingleAggregateReadStoreManager
into one class in order to always guarantee in-order event processing - Breaking: Marked the
UseReadStoreFor<,,,>configuration methods as obsolete,
in favor of the simpler overloads with less type parameters (as those automatically
figure out the AggregateRoot and Id types and configure the more reliable
SingleAggregateReadStoreManagerimplementation) - Obsolete: The class
AsyncHelperand all non-async methods using it have been
marked obsolete and will be removed in EventFlow 1.0 (not planned yet). If you rely
on these non-async methods, then merely copy-paste theAsyncHelperfrom the EventFlow
code base and continue using it in your transition to async only - Fixed: An issue where
EntityFrameworkEventPersistencecould possibly save aggregate
events out of order, which would lead to out-of-order application when streaming events
ordered by GlobalSequenceNumber - New:
FilesEventPersistencenow uses relative paths - New: A new set of hook-in interfaces are provided from this release, which should
make it easier to implement crash resilience (#439) in EventFlow. Please note that
this new API is experimentational and subject to change as different strategies are
implementedIAggregateStoreResilienceStrategyIDispatchToReadStoresResilienceStrategyIDispatchToSubscriberResilienceStrategyISagaUpdateResilienceStrategy
v0.79.4216
- New: Added .NET Core 3.1 target for the
EventFlow
andEventFlow.EntityFrameworkpackages - Added quoting to the SQL query generator for the column names
v0.78.4205
- New: Updated LibLog provider to support structured logging with NLog 4.5.
Reduced memory allocations for log4net-provider - New: Made several methods in
AggregateRoot<,>virtualto allow
easier customization - Fixed: Added quoting to the SQL query generator for the column names
-- query before the fix
UPDATE [ReadModel-TestAttributes]
SET UpdatedTime = @UpdatedTime
WHERE Id = @Id
-- query after the fix
UPDATE [ReadModel-TestAttributes]
SET [UpdatedTime] = @UpdatedTime
WHERE [Id] = @Id- Fixed: Do not log about event upgraders if none is found for an event
- Fixed: Add default
nullpredicate toAddCommandsandAddJobs