Skip to content

v1.0.5002-alpha

Compare
Choose a tag to compare
@rasmus rasmus released this 11 Nov 13:34
3c6ad60

New in 1.0-alpha (not released yet)

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

Changes since last 1.x pre-release, 1.0.5001-alpha

  • New/breaking: IEventUpgrader<,> are now (finally) async. For an easy upgrade experience,
    use the new base class EventUpgraderNonAsync for any existing upgraders. Its a abstract
    class that implements the updated interface and provides a abstract method with the same
    signature as the previous interface
  • Fix/breaking: Event upgraders are now used during read model population. As the upgraders
    are re-used across multiple aggregates, there is a high likelihood that some additions are
    needed in any existing upgraders. Upgraders are stored on the new IEventUpgradeContext,
    which is created by the new IEventUpgradeContextFactory. Replace this if you need addition
    context during event upgrades
  • Fix: SnapshotAggregateRoot now correctly loads previous source IDs as well
    adds the current source ID that triggered the snapshot. This causes the
    DuplicateOperationException to be correctly thrown if a duplicate source
    ID as added before a snapshot was taken
  • Fix: Upgrade Newtonsoft.Json from 11.0.2 to 13.0.1 to fix DoS
    vulnerability
  • Fix: UseFilesEventPersistence should no longer throw exception for .NET regarding relative paths

Complete 1.0 change log

  • 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 on IMsSqlConnection and ISqlConnection now have an
    additional argument, string connectionStringName to 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/breaking: IEventUpgrader<,> are now (finally) async. For an easy upgrade experience,
    use the new base class EventUpgraderNonAsync for any existing upgraders. Its a abstract
    class that implements the updated interface and provides a abstract method with the same
    signature as the previous interface
  • Fix/breaking: Event upgraders are now used during read model population. As the upgraders
    are re-used across multiple aggregates, there is a high likelihood that some additions are
    needed in any existing upgraders. Upgraders are stored on the new IEventUpgradeContext,
    which is created by the new IEventUpgradeContextFactory. Replace this if you need addition
    context during event upgrades
  • 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 with Sql... instead of MsSql...
    • MsSqlReadModelIdentityColumn
    • MsSqlReadModelIgnoreColumn
    • MsSqlReadModelVersionColumn
  • Breaking: Methods on IMsSqlDatabaseMigrator and ISqlDatabaseMigrator have been
    made async and have an extra CancellationToken argument
  • 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 IAmAsyncReadModelFor and made IAmReadModelFor async
  • Breaking: Removed EventFlow.Core.AsyncHelper as well as all async wrapper methods
    that used it
    • IAggregateStore.Load
    • IAggregateStore.Store
    • IAggregateStore.Update
    • ICommandBus.Publish
    • IEventStore.LoadAggregate
    • IEventStore.LoadEvents
    • IEventStore.LoadAllEvents
    • IQueryProcessor.Process
    • IReadModelPopulator.Populate
    • IReadModelPopulator.Purge
  • Fix: SnapshotAggregateRoot now correctly loads previous source IDs as well
    adds the current source ID that triggered the snapshot. This causes the
    DuplicateOperationException to be correctly thrown if a duplicate source
    ID as added before a snapshot was taken
  • Fix: Upgrade Newtonsoft.Json from 11.0.2 to 13.0.1 to fix DoS
    vulnerability
  • 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