Akka.Persistence 1.3.9

Persistence actor support for Akka.NET

There is a newer version of this package available.
See the version list below for details.
Install-Package Akka.Persistence -Version 1.3.9
dotnet add package Akka.Persistence --version 1.3.9
<PackageReference Include="Akka.Persistence" Version="1.3.9" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Akka.Persistence --version 1.3.9
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Akka.Persistence, 1.3.9"
#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.Persistence as a Cake Addin
#addin nuget:?package=Akka.Persistence&version=1.3.9

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

Release Notes

Maintenance Release for Akka.NET 1.3**
Akka.NET v1.3.9 features some major changes to Akka.Cluster.Sharding, additional Akka.Streams stages, and some general bug fixes across the board.
Akka.Cluster.Sharding Improvements**
The [Akka.Cluster.Sharding documentation](http://getakka.net/articles/clustering/cluster-sharding.html#quickstart) already describes some of the major changes in Akka.NET v1.3.9, but we figured it would be worth calling special attention to those changes here.
Props Factory for Entity Actors**
> In some cases, the actor may need to know the `entityId` associated with it. This can be achieved using the `entityPropsFactory` parameter to `ClusterSharding.Start` or `ClusterSharding.StartAsync`. The entity ID will be passed to the factory as a parameter, which can then be used in the creation of the actor.
In addition to the existing APIs we've always had for defining sharded entities via `Props`, Akka.NET v1.3.9 introduces [a new method overload for `Start`](http://getakka.net/api/Akka.Cluster.Sharding.ClusterSharding.html#Akka_Cluster_Sharding_ClusterSharding_Start_System_String_System_Func_System_String_Akka_Actor_Props__Akka_Cluster_Sharding_ClusterShardingSettings_Akka_Cluster_Sharding_ExtractEntityId_Akka_Cluster_Sharding_ExtractShardId_) and [`StartAsync`](http://getakka.net/api/Akka.Cluster.Sharding.ClusterSharding.html#Akka_Cluster_Sharding_ClusterSharding_StartAsync_System_String_System_Func_System_String_Akka_Actor_Props__Akka_Cluster_Sharding_ClusterShardingSettings_Akka_Cluster_Sharding_ExtractEntityId_Akka_Cluster_Sharding_ExtractShardId_) which allows users to pass in the `entityId` of each entity actor as a constructor argument to those entities when they start.
For example:
```
var anotherCounterShard = ClusterSharding.Get(Sys).Start(
                       typeName: "AnotherCounter",
                       entityProps: Props.Create<AnotherCounter>(),
                       typeName: AnotherCounter.ShardingTypeName,
                       entityPropsFactory: entityId => AnotherCounter.Props(entityId),
                       settings: ClusterShardingSettings.Create(Sys),
                       extractEntityId: Counter.ExtractEntityId,
                       extractShardId: Counter.ExtractShardId);
```
This will give you the opportunity to pass in the `entityId` for each actor as a constructor argument into the `Props` of your entity actor and possibly other use cases too.
Improvements to Starting and Querying Existing Shard Entity Types**
Two additional major usability improvements to Cluster.Sharding come from some API additions and changes.
The first is that it's now possible to look up all of the currently registered shard types via the [`ClusterSharding.ShardTypeNames` property](http://getakka.net/api/Akka.Cluster.Sharding.ClusterSharding.html#Akka_Cluster_Sharding_ClusterSharding_ShardTypeNames). So long as a `ShardRegion` of that type has been started in the cluster, that entity type name will be added to the collection exposed by this property.
The other major usability improvement is a change to the `ClusterSharding.Start` property itself. Historically, you used to have to know whether or not the node you wanted to use sharding on was going to be hosting shards (call `ClusterSharding.Start`) or simply communicated with shards hosted on a different cluster role type (call `ClusterSharding.StartProxy`). Going forward, it's safe to call `ClusterSharding.Start` on any node and you will either receive an `IActorRef` to active `ShardRegion` or a `ShardRegion` running in "proxy only" mode; this is determined by looking at the `ClusterShardingSettings` and determining if the current node is in a role that is allowed to host shards of this type.
[Akka.Cluster.Sharding: Sharding API Updates](https://github.com/akkadotnet/akka.net/pull/3524)
[Akka.Cluster.Sharding: sharding rebalance fix](https://github.com/akkadotnet/akka.net/pull/3518)
[Akka.Cluster.Sharding: log formatting fix](https://github.com/akkadotnet/akka.net/pull/3554)
[Akka.Cluster.Sharding: `RestartShard` escapes into userspace](https://github.com/akkadotnet/akka.net/pull/3509)
Akka.Streams Additions and Changes**
In Akka.NET v1.3.9 we've added some new built-in stream stages and API methods designed to help improve developer productivity and ease of use.
[Akka.Streams: add CombineMaterialized method to Source](https://github.com/akkadotnet/akka.net/pull/3489)
[Akka.Streams:
KillSwitches: flow stage from CancellationToken](https://github.com/akkadotnet/akka.net/pull/3568)
[Akka.Streams: Port KeepAliveConcat and UnfoldFlow](https://github.com/akkadotnet/akka.net/pull/3560)
[Akka.Streams: Port PagedSource & IntervalBasedRateLimiter](https://github.com/akkadotnet/akka.net/pull/3570)
Other Updates, Additions, and Bugfixes**
[Akka.Cluster: cluster coordinated leave fix for empty cluster](https://github.com/akkadotnet/akka.net/pull/3516)
[Akka.Cluster.Tools: bumped ClusterClient message drop log messages from DEBUG to WARNING](https://github.com/akkadotnet/akka.net/pull/3513)
[Akka.Cluster.Tools: Singleton - confirm TakeOverFromMe when singleton already in oldest state](https://github.com/akkadotnet/akka.net/pull/3553)
[Akka.Remote: RemoteWatcher race-condition fix](https://github.com/akkadotnet/akka.net/pull/3519)
[Akka: fix concurrency bug in CircuitBreaker](https://github.com/akkadotnet/akka.net/pull/3505)
[Akka: Fixed ReceiveTimeout not triggered in some case when combined with NotInfluenceReceiveTimeout messages](https://github.com/akkadotnet/akka.net/pull/3555)
[Akka.Persistence: Optimized recovery](https://github.com/akkadotnet/akka.net/pull/3549)
[Akka.Persistence: Allow persisting events when recovery has completed](https://github.com/akkadotnet/akka.net/pull/3366)
To [see the full set of changes for Akka.NET v1.3.9, click here](https://github.com/akkadotnet/akka.net/milestone/27).
| COMMITS | LOC+ | LOC- | AUTHOR |
| --- | --- | --- | --- |
| 28 | 2448 | 5691 | Aaron Stannard |
| 11 | 1373 | 230 | zbynek001 |
| 8 | 4590 | 577 | Bartosz Sypytkowski |
| 4 | 438 | 99 | Ismael Hamed |
| 4 | 230 | 240 | Sean Gilliam |
| 2 | 1438 | 0 | Oleksandr Bogomaz |
| 1 | 86 | 79 | Nick Polideropoulos |
| 1 | 78 | 0 | v1rusw0rm |
| 1 | 4 | 4 | Joshua Garnett |
| 1 | 32 | 17 | Jarl Sveinung Flø Rasmussen |
| 1 | 27 | 1 | Sam13 |
| 1 | 250 | 220 | Maxim Cherednik |
| 1 | 184 | 124 | Josh Taylor |
| 1 | 14 | 0 | Peter Shrosbree |
| 1 | 1278 | 42 | Marc Piechura |
| 1 | 1 | 1 | Vasily Kirichenko |
| 1 | 1 | 1 | Samuel Kelemen |
| 1 | 1 | 1 | Nyola Mike |
| 1 | 1 | 1 | Fábio Beirão |

NuGet packages (39)

Showing the top 5 NuGet packages that depend on Akka.Persistence:

Package Downloads
Akka.Persistence.Sql.Common
Akka.NET Persistence ADO.NET middleware
Akka.Cluster.Sharding
Sharded actors with managed lifecycle for Akka.NET cluster
Akka.Persistence.Query
Stream based query interface for persistence journal plugins for Akka.NET
Akka.Persistence.Query.Sql
Akka.NET streams support for ADO.NET Persistence middleware.
Akka.Persistence.Sqlite
Akka.NET Persistence journal and snapshot store backed by SQLite.

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on Akka.Persistence:

Repository Stars
Lutando/Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
axzxs2001/Asp.NetCoreExperiment
原来所有项目都移动到**OleVersion**目录下进行保留。新的案例装以.net 5.0为主,一部分对以前案例进行升级,一部分将以前的工作经验总结出来,以供大家参考!
Horusiath/AkkaCQRS
Event sourcing example build on Akka.NET with persistence plugin

Version History

Version Downloads Last updated
1.4.20 153 5/12/2021
1.4.19 1,564 4/28/2021
1.4.18 6,506 3/23/2021
1.4.17 3,311 3/10/2021
1.4.16 22,206 1/22/2021
1.4.15 982 1/20/2021
1.4.14 7,370 12/30/2020
1.4.13 1,756 12/16/2020
1.4.12 26,746 11/16/2020
1.4.11 11,709 11/5/2020
1.4.10 32,635 8/20/2020
1.4.9 13,167 7/21/2020
1.4.8 23,443 6/17/2020
1.4.7 7,478 5/27/2020
1.4.6 7,748 5/12/2020
1.4.5 9,753 4/29/2020
1.4.4 16,851 3/31/2020
1.4.3 6,070 3/18/2020
1.4.2 3,723 3/13/2020
1.4.1 13,354 3/11/2020
1.4.1-rc3 1,065 3/10/2020
1.4.1-rc2 642 3/10/2020
1.4.1-rc1 1,335 2/28/2020
1.4.0-beta4 1,699 1/28/2020
1.4.0-beta3 6,188 10/30/2019
1.4.0-beta2 3,201 9/23/2019
1.4.0-beta1 1,973 7/19/2019
1.3.18 9,357 3/9/2020
1.3.17 32,635 12/20/2019
1.3.16 8,220 11/14/2019
1.3.15 36,872 9/23/2019
1.3.14 24,505 7/30/2019
1.3.13 25,005 4/30/2019
1.3.12 16,710 3/14/2019
1.3.11 26,906 12/18/2018
1.3.10 18,846 11/2/2018
1.3.9 58,473 8/23/2018
1.3.8 18,571 6/5/2018
1.3.7 14,062 5/15/2018
1.3.6 4,416 4/17/2018
1.3.5 14,428 2/22/2018
1.3.4 3,758 2/1/2018
1.3.3 2,146 1/19/2018
1.3.2 31,499 10/21/2017
1.3.1 19,864 9/5/2017
1.3.0 5,323 8/11/2017
1.2.3.43-beta 3,865 7/10/2017
1.2.3.41-beta 934 7/10/2017
1.2.2.40-beta 4,039 6/28/2017
1.2.2.39-beta 982 6/28/2017
1.2.1.38-beta 3,810 6/23/2017
1.2.1.37-beta 954 6/23/2017
1.2.0.36-beta 13,734 4/13/2017
1.2.0.35-beta 966 4/13/2017
1.2.0.34-beta 957 4/12/2017
1.2.0.33-beta 1,021 4/12/2017
1.1.3.32-beta 12,714 1/23/2017
1.1.3.31-beta 1,023 1/23/2017
1.1.2.30-beta 13,890 9/22/2016
1.1.2.29-beta 951 9/22/2016
1.1.1.28-beta 6,039 7/16/2016
1.1.1.27-beta 1,007 7/16/2016
1.1.0.26-beta 1,324 7/7/2016
1.0.8.25-beta 2,693 4/26/2016
1.0.8.24-beta 903 4/26/2016
1.0.7.18-beta 1,312 4/6/2016
1.0.6.17-beta 9,016 1/18/2016
1.0.6.16-beta 849 1/18/2016
1.0.5.15-beta 4,038 12/3/2015
1.0.5.14-beta 828 12/3/2015
1.0.4.12-beta 2,096 8/8/2015
1.0.3-beta 1,307 6/12/2015
1.0.2.9-beta 1,186 6/3/2015
1.0.1-pre1504282013 1,214 4/28/2015
1.0.0-pre1504092226 926 4/9/2015
1.0.0-dev1504032244 814 4/3/2015
0.8.0-pre1502120115 1,065 2/12/2015
Show less