Show / Hide Table of Contents

Migration from 1.x

2.x is mostly compatible with 1.x. However, there are several minor and major incompatible changes in API surface.

Minor changes:

  1. DotNext.IO namespace and its classes moved from DotNext library to DotNext.IO library
  2. Encoding and decoding context from DotNext.Text namespace moved to DotNext.IO library
  3. DotNext.Runtime.InteropServices.Memory class merged with DotNext.Runtime.Intrinsics
  4. Core interfaces from DotNext.Net.Cluster.Replication namespace moved to DotNext.IO library
  5. DotNext.Net.Cluster.Consensus.Raft.PersistentState class from DotNext.Net.Cluster class now completely migrated to ValueTask instead of Task

Major changes:

  1. DotNext.AspNetCore.Cluster now relies on .NET Core 3.1 SDK instead of .NET Standard 2.1. This was happened because ASP.NET Core 3.x dependencies are not available from NuGet and became a part of .NET Core SDK.
  2. DotNext.AspNetCore.Cluster uses Generic Host Builder instead of Web Host Builder so configuration methods are changed. Examine this article for more info.
  3. DotNext.Runtime.InteropServices.UnmanagedMemory and DotNext.Runtime.InteropServices.UnmanagedMemory<T> classes from DotNext.Unsafe library are no longer exist. Use UnmanagedMemoryPool class instead
  4. EnsureConsistencyAsync method removed from IAuditTrail interface. Method with the same is added to IPersistentState interface but it has different semantics aimed to support ClientQuery RPC according with Chapter 6 of dissertation
  5. Default Raft implementation calls InitializeAsync method of audit trail to reconstruct the state machine at initialization time. This functionality was missed in 1.x version
  6. InMemoryAuditTrail class is replaced by ConsensusOnlyState which is optimized for cases when you need consensus functionality only without replication of real data
  7. ForceReplicationAsync method of IReplicationCluster class is introduced and included into Raft implementation and allows to organize ClientQuery RPC according with Chapter 6 of dissertation
  8. IMessaheHandler interface moved from DotNext.AspNetCore.Cluster library to DotNext.Net.Cluster library and renamed to IInputChannel.
  • Improve this Doc
In This Article
Back to top Generated by DocFX