EventFlow

Async/await first CQRS+ES and DDD framework for .NET

OTHER License

Stars
2.3K
Committers
77

Bot releases are hidden (Show)

EventFlow - v0.69.3772

Published by rasmus over 5 years ago

  • 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
EventFlow - v0.70.3824

Published by rasmus over 5 years ago

  • 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
EventFlow - v0.68.3728

Published by rasmus almost 6 years ago

  • Breaking: Changed name of namespace of the projects AspNetCore EventFlow.Aspnetcore
    to EventFlow.AspNetCore
  • Fix: Ignore multiple loads of the same saga
EventFlow - v0.67.3697

Published by rasmus about 6 years ago

  • 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
EventFlow - v0.66.3673

Published by rasmus about 6 years ago

  • Critical fix: - fix issue where the process using EventFlow could hang using 100% CPU due to unsynchronized Dictionary access, See #541.
EventFlow - v0.65.3664

Published by rasmus about 6 years ago

  • Minor: Performance improvement of storing events for EventFlow.PostgreSql
EventFlow - v0.64.3598

Published by rasmus about 6 years ago

  • New: Added .NET standard support for SQLite
EventFlow - v0.63.3581

Published by rasmus about 6 years ago

  • New: PostgreSQL support in the form of the new EventFlow.PostgreSql NuGet package
EventFlow - v0.62.3569

Published by rasmus over 6 years ago

  • 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.
EventFlow - v0.61.3524

Published by rasmus over 6 years ago

  • New: Support for Microsoft.Extensions.DependencyInjection (IServiceProvider
    and IServiceCollection) using the EventFlow.DependencyInjection NuGet package.

    Add it to your ASP.NET Core 2.0 application:

      public void ConfigureServices(IServiceCollection services)
      {
      	services.AddMvc();
      	services.AddEventFlow(o => o.AddDefaults(MyDomainAssembly));
      }
    

    Or use it explicitly:

      EventFlowOptions.New.
      	.UseServiceCollection()
      	...
      	.CreateServiceProvider();
    
  • New: Package EventFlow.Autofac now references Autofac 3.5.2 for .NET
    framework 4.5.1 (down from Autofac v4.5.0)

  • Fixed: Constructor injection of scoped instances into query handlers

EventFlow - v0.60.3490

Published by rasmus over 6 years ago

  • New: Implemented optimistic concurrency checks for MSSQL, SQLite and
    Elasticsearch read models
  • New: Added .NET standard support for EventStore
  • New: Delete read models by invoking context.MarkForDeletion() in an Apply method
  • Minor: Removed unnecessary transaction in EventStore persistance
  • Fixed: Read model SQL schema is no longer ignored for Table attribute
EventFlow - v0.59.3396

Published by rasmus over 6 years ago

  • Fix: Commands are now correctly published when no events are emitted from a saga
    after handling a domain event
  • Minor fix: Updated name of Primary Key for MSSQL Snapshot Store to be different
    from MSSQL Event Store, so both can be used in the same database without conflicts
EventFlow - v0.58.3377

Published by rasmus over 6 years ago

  • Minor fix: Corrected log in CommandBus regarding events emitted due to command
EventFlow - v0.57.3359

Published by rasmus over 6 years ago

  • Fixed: AggregateException/InvalidOperationException when reading and updating
    an aggregate from different threads at the same time using InMemoryEventPersistence
  • New: .NET standard 1.6 and 2.0 support for EventFlow.MsSql package
EventFlow - v0.56.3328

Published by rasmus over 6 years ago

  • New: Allow enums to be used in SingleValueObject<T> and protect from
    undefined enum values
EventFlow - v0.55.3323

Published by rasmus over 6 years ago

  • Fixed: Re-populating events to read models that span multiple aggregates
    now has events orderd by timestamp instead of sequence numbers, i.e., events
    from aggregates with higher sequences numbers isn't forced last
  • New: Trigger sagas without the need of any domain events by using
    ISagaStore.UpdateAsync(...)
  • New: .NET standard 2.0 (still supports 1.6) support added to these
    NuGet packages
    • EventFlow
    • EventFlow.Autofac
    • EventFlow.Elasticsearch
    • EventFlow.Hangfire
    • EventFlow.Sql
EventFlow - v0.54.3261

Published by rasmus over 6 years ago

  • Critical fix: SagaAggregateStore was incorrectly putting an object reference
    into its memory cache causing an object already disposed exception when working with
    sagas
  • New: Added LibLog, enable by
    calling the IEventFlowOptions.UseLibLog(...) extension
EventFlow - v0.53.3204

Published by rasmus over 6 years ago

  • New: Allow events to have multiple EventVersion attributes
  • Fixed: ReflectionHelper.CompileMethodInvocation now recognises
    private methods.
EventFlow - v0.52.3178

Published by rasmus almost 7 years ago

  • Fixed: .UseFilesEventStore now uses a thread safe singleton instance for
    file system persistence, making it suitable for use in multi-threaded unit
    tests. Please don't use the files event store in production scenarios
  • New: Support for unicode characters in type names. This simplifies using an
    ubiquitous language
    in non-english domains
  • Fixed: Include hyphen in prefix validation for identity values. This fixes a bug
    where invalid identities could be created (e.g. ThingyId.With("thingyINVALID-a41e..."))
EventFlow - v0.51.3155

Published by rasmus almost 7 years ago

  • New: Removed the new() requirement for read models
  • New: If ISagaLocator.LocateSagaAsync cannot identify the saga for a given
    event, it may now return Task.FromResult(null) in order to short-circuit
    the dispatching process. This might be useful in cases where some instances
    of an event belong to a saga process while others don't
  • Fixed: StringExtensions.ToSha256() can now be safely used from
    concurrent threads.