Akka.Remote.TestKit 1.4.21

TestKit for Testing Distributed Akka.NET Applications

Install-Package Akka.Remote.TestKit -Version 1.4.21
dotnet add package Akka.Remote.TestKit --version 1.4.21
<PackageReference Include="Akka.Remote.TestKit" Version="1.4.21" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Akka.Remote.TestKit --version 1.4.21
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Akka.Remote.TestKit, 1.4.21"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Akka.Remote.TestKit as a Cake Addin
#addin nuget:?package=Akka.Remote.TestKit&version=1.4.21

// Install Akka.Remote.TestKit as a Cake Tool
#tool nuget:?package=Akka.Remote.TestKit&version=1.4.21
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Maintenance Release for Akka.NET 1.4**
Akka.NET v1.4.21 is a significant release that includes major performance improvements, bug fixes, and a major update to the [Akka.DependencyInjection NuGet package](https://getakka.net/articles/actors/dependency-injection.html).
Performance Improvements**
Akka.NET v1.4.21 includes some major performance fixes and improvements:
[`Ask` is now ~10% faster](https://github.com/akkadotnet/akka.net/pull/5051)
[`MurmurHash` is 33% faster and allocates 0 memory](https://github.com/akkadotnet/akka.net/pull/5028) - used _heavily_ in DData, Cluster Sharding, and Consistent Hash Routers
`ActorPath.Parse` went from 1672 ns/op to 527 ns/op - a 68% improvement in throughput and a 50% reduction in memory. See [#5039](https://github.com/akkadotnet/akka.net/pull/5039) and [#5068](https://github.com/akkadotnet/akka.net/pull/5068).
[Akka.Remote: remove `ActorPath.ToString` call from `ResolveActorRefWithLocalAddress`](https://github.com/akkadotnet/akka.net/pull/5034)
Important**: [Revert `ThreadPool.SetMinThreads(0,0)`](https://github.com/akkadotnet/akka.net/pull/5059) - based on the input from users on "[Akka.NET v1.4.19: ChannelExecutor performance data](https://github.com/akkadotnet/akka.net/discussions/4983)"
Our observed performance numbers for Akka.Remote show a significant increase in performance for v1.4.21 over v1.4.20:
Before*
```
PS> dotnet run -c Release --framework netcoreapp3.1
OSVersion:                         Microsoft Windows NT 6.2.9200.0
ProcessorCount:                    16
ClockSpeed:                        0 MHZ
Actor Count:                       32
Messages sent/received per client: 200000  (2e5)
Is Server GC:                      True
Thread count:                      109
Num clients, Total [msg], Msgs/sec, Total [ms]
1,  200000,    113379,    1764.56
5, 1000000,    186429,    5364.05
10, 2000000,    185340,   10791.11
15, 3000000,    183218,   16374.06
20, 4000000,    179824,   22244.63
25, 5000000,    182716,   27365.89
30, 6000000,    182039,   32960.61
```
After*
```
PS> dotnet run -c Release --framework netcoreapp3.1
OSVersion:                         Microsoft Windows NT 6.2.9200.0
ProcessorCount:                    16
ClockSpeed:                        0 MHZ
Actor Count:                       32
Messages sent/received per client: 200000  (2e5)
Is Server GC:                      True
Thread count:                      111
Num clients, Total [msg], Msgs/sec, Total [ms]
1,  200000,    109770,    1822.14
5, 1000000,    192902,    5184.79
10, 2000000,    191663,   10435.53
15, 3000000,    191339,   15679.11
20, 4000000,    192725,   20755.78
25, 5000000,    189754,   26350.14
30, 6000000,    189772,   31617.20
```
> N.B. these after numbers don't benefit from the performance benefits we observed in v1.4.20 when we invoked `ThreadPool.SetMinThreads(0,0)`, which makes them even more impressive.
Akka.DependencyInjection Updates**
We had one major issue we implemented in v1.4.21 for Akka.DependencyInjection: [Abstraction of `ServiceProvider`, Improving Akka.DependencyInjection ](https://github.com/akkadotnet/akka.net/pull/4814)
What this change did was:
Deprecate the `Akka.DependencyInjection.ServiceProvider` class in favor of the `Akka.DependencyInjection.DependencyResolver` class - to avoid namespace collision with Microsoft.Extensions.DependencyInjection.ServiceProvider;
Deprecates the `Akka.DependencyInjection.ServiceProviderSetup` class in favor of the `Akka.DependencyInjection.DependencyResolverSetup` class for consistency reasons;
`Akka.DependencyInjection.DependencyResolver` now takes an input of type [`IDependencyResolver`](https://getakka.net/api/Akka.DependencyInjection.IDependencyResolver.html), which allows users to abstract away the `IServiceProvider` and mock / replace it during unit testing; and
Added some non-generic `Props` methods for dynamically spawning actors via DI.
All of these changes are backwards-compatible with v1.4.20 and earlier - and the deprecation warnings will appear in your code when you upgrade. If you run into any [issues upgrading to Akka.DependencyInjection v1.4.21 please reply on this thread](https://github.com/akkadotnet/akka.net/discussions/5070)!
Other Changes and Fixes**
[Akka.Streams: A couple of fixes affecting the `FileSubscriber`](https://github.com/akkadotnet/akka.net/pull/5035)
[Akka.DistributedData: memory leak when recovering events from LMDB data store](https://github.com/akkadotnet/akka.net/issues/5022)
[Akka.DistributedData: port `VectorClock` performance optimizations to `VersionVector` and similar types](https://github.com/akkadotnet/akka.net/issues/4956)
To see the [full set of fixes in Akka.NET v1.4.21, please see the milestone on Github](https://github.com/akkadotnet/akka.net/milestone/51).
| COMMITS | LOC+ | LOC- | AUTHOR |
| --- | --- | --- | --- |
| 5 | 34 | 24 | Aaron Stannard |
| 4 | 196 | 77 | Gregorius Soedharmo |
| 3 | 3 | 3 | dependabot[bot] |
| 1 | 2 | 2 | Wessel Kranenborg |
| 1 | 1 | 1 | Martijn Schoemaker |

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Akka.Remote.TestKit:

Package Downloads
Akka.Cluster.TestKit
Helper classes for combining the Akka.Remote.TestKit with Akka.Cluster
Akkatecture.MultiNode.Shared
Wrapper for akka.net multinode test runner shared libraries

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Akka.Remote.TestKit:

Repository Stars
Lutando/Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net

Version History

Version Downloads Last updated
1.4.21 503 6/16/2021
1.4.21-beta1 196 6/4/2021
1.4.20 697 5/12/2021
1.4.19 514 4/28/2021
1.4.18 434 3/23/2021
1.4.17 219 3/10/2021
1.4.16 1,560 1/22/2021
1.4.15 144 1/20/2021
1.4.14 209 12/30/2020
1.4.13 219 12/16/2020
1.4.12 459 11/16/2020
1.4.11 328 11/5/2020
1.4.10 1,897 8/20/2020
1.4.9 511 7/21/2020
1.4.8 1,184 6/17/2020
1.4.7 364 5/27/2020
1.4.6 304 5/12/2020
1.4.5 327 4/29/2020
1.4.4 662 3/31/2020
1.4.3 320 3/18/2020
1.4.2 400 3/13/2020
1.4.1 329 3/11/2020
1.4.1-rc3 316 3/10/2020
1.4.1-rc2 267 3/10/2020
1.4.1-rc1 307 2/28/2020
1.4.0-beta4 438 1/28/2020
1.4.0-beta3 342 10/30/2019
1.4.0-beta2 334 9/23/2019
1.4.0-beta1 342 7/19/2019
1.3.18 352 3/9/2020
1.3.17 480 12/20/2019
1.3.16 510 11/14/2019
1.3.15 551 9/23/2019
1.3.14 889 7/30/2019
1.3.13 841 4/30/2019
1.3.12 587 3/14/2019
1.3.11 920 12/18/2018
1.3.10 542 11/2/2018
1.3.9 1,065 8/23/2018
1.3.8 638 6/5/2018
1.3.7 672 5/15/2018
1.3.6 640 4/17/2018
1.3.5 859 2/22/2018
1.3.4 698 2/1/2018
1.3.3 607 1/19/2018
1.3.2 869 10/21/2017
1.3.1 706 9/5/2017
1.3.0 739 8/11/2017
1.2.3 724 7/10/2017
1.2.2 698 6/28/2017
1.2.1 679 6/23/2017
1.2.0 721 4/12/2017
1.1.3 724 1/23/2017
1.1.2 831 9/22/2016
1.1.1 821 7/16/2016
1.1.0 766 7/7/2016