Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Releases: NEventStore/NEventStore

10.1.1

15 May 10:33

Choose a tag to compare

BugFix

  • Fixed Assemblies Version Numbers (AssemblyInfo files).

10.1.0

15 May 10:32

Choose a tag to compare

  • Improved IEventStream interface: CommitChanges() and CommitChangesAsync() now return ICommit instead of void.
  • Updated MessagePack serializer to 3.1.3

Breaking Changes

  • IEventStream.CommitChanges() and IEventStream.CommitChangesAsync() now return ICommit instead of void.

10.0.1

15 May 10:32

Choose a tag to compare

BugFix

  • Async Pipeline Hooks: initialization and PreCommit/PostCommit invocation bugs #516

10.0.0

24 Jan 09:54

Choose a tag to compare

  • Async Methods to read from and write to streams (IStoreEvents, IEventStream, IPersistStreams, IPersistStreamsAsync, ICommitEventsAsync, IAccessSnapshotsAsync). #513
    • methods that read from a stream in an async way follow the Observer pattern and requires you to pass in an IAsyncObservable that will receive data as soon as they are available.
  • Async Pipeline Hooks (IPipelineHookAsync). #515
  • AsyncPollingClient: a new polling client implementation that uses Async interfaces. #505
  • Removed the BinarySerializer (BinaryFormatter) from the core package and moved it to its own package #510
  • Improved comments and added more nullability checks.
  • Minor performance improvements.
  • Updated Testing Packages (NUnit, FluentAssertions, Microsoft.NET.Test and so on...).

Breaking Changes

  • PersistStreamsExtensions.GetFrom(IPersistStreams, DateTime) and PersistStreamsExtensions.GetFromTo(IPersistStreams, DateTime, DateTime) extension methods have been removed: they had inconsistent behavior with the other GetFrom(checkpointToken) methods,
    they were getting data from the default bucket only.
  • PipelineHooksAwarePersistanceDecorator renamed to PipelineHooksAwarePersistStreamsDecorator.
  • IPipelineHook.Select method renamed to IPipelineHook.SelectCommit.
  • BinarySerializer moved to its own package: NEventStore.Serialization.Binary.
    • for net8.0+ call AppContext.SetSwitch("System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization", true); to enable unsafe BinaryFormatter usage.
  • Improved many method signature with nullability annotations.
  • Wireup.With() renamed Wireup.Register().
  • OptimisticEventStream constructors replaced by initialization functions:
    • new OptimisticEventStream(string bucketId, string streamId, ICommitEvents persistence, int minRevision, int maxRevision) -> new OptimisticEventStream(string bucketId, string streamId, ICommitEvents persistence).Initialize(int minRevision, int maxRevision).
    • new OptimisticEventStream(ISnapshot snapshot, ICommitEvents persistence, int maxRevision) -> new OptimisticEventStream(string bucketId, string streamId, ICommitEvents persistence).Initialize(ISnapshot snapshot, int maxRevision).

9.2.0

17 Jan 15:07

Choose a tag to compare

  • Updated nuget packages to include symbol packages and more information.
  • Updated Newtonsoft.Bson 13.0.3
  • Added MessagePack serializer, thanks to @pvagnozzi
  • Improved comments and removed some compilation warnings.

9.1.1

29 Jul 12:38

Choose a tag to compare

Maintenance release

Updated Target Frameworks:

  • netstandard2.0
  • net4.6.2

Breaking Changes

  • dropped net461

9.0.0

02 Dec 15:46

Choose a tag to compare

  • Added support for .net6.0 #493.
  • Change / Optimization: Commit and CommitAttempt do not create internal readonly collections anymore, it can be useless given the fact we can change properties of events.
  • NEventStore.Serialization.Json: accepts a JsonSerializerSettings to configure the serializer.

8.0.0

01 Jul 16:53

Choose a tag to compare

  • Added support for .net 5 #489.
  • Added support for .net framework 4.6.1.
  • Fixed InMemoryPersistenceEngine.AddSnapshot() behavior: adding multiple snapshots for the same tuple bucketId, streamId, streamRevision is not allowed; the updated snapshot will be ignored #484.
  • Logging infrastructure switched to Microsoft.Extensions.Logging #454, #488.
  • Reviewed Exception (and logging) messages: many of those that refer to a StreamId should also provide BucketId information #480

Breaking Changes

  • Droppped support for .Net Framework 4.5, only .Net 4.6.1+ will be supported in 8.x. .Net Framewrok support will be dropped in a future revision.
  • Logging switched to Microsoft.Extensions.Logging, old logging code and configuration functions have been removed.

V5 Release

15 Mar 11:08

Choose a tag to compare

Note: Version 5 is not backwards compatible with v4. Updating to v5 without doing some preparation work will result in problems

Breaking Changes

  1. Underlying schema has changed for all v5 storage engines. In order to migrate a store from v4 to v5 use NEventStore.Migrations
  2. The concept of a 'Bucket' has been added as a container for streams allowing multi-tenancy, partitions, multiple-bounded contexts, sagas, etc to be stored in the one store. The API changes have been such that, using extension methods, operations will work on the default bucket, unless a bucket Id has been explicitly supplied. This should mean minimal code changes for the user.
  3. Stream Ids are now string based and are limited to 1000 characters.
    1. In the SQL engines the stream Id's are limited to 40 characters and are hashed versions of the actual StreamId.
    2. The hashing function can be overridden during wireup.

New Features

Polling Client

As an alternative to the dispatcher mechanism and improved replay / catch-up story we have implemented a CheckpointNumber in the stores that guarantees ordering across the streams. This number is guaranteed to increment but not guaranteed to be sequential. This allows you to get all Commits from a specific checkpoint and observe new ones. This implementation is polling based (and thus works for all engines) so it doesn't have the same low-latency attributes of the dispatcher mechanism. You can see how to use it here: https://gist.github.com/damianh/6370328 .In this, instead of the store tracking what has been dispatched, the onus is on the client to track what it has seen. And upon restart, start subscribing from what it last saw.

In the future I'd like to see / implement reactive clients that leverage stores that are observable.

Other Notes

  1. Only SQL and MongoDB persistence engines are supported in this release. RavenDB engine will be shipped later.
  2. RavenDB and MongoDB persistence engines are now in their own repositories and will have be shipped independently.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.