You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: RELEASE_NOTES.md
+30-3
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,34 @@
1
-
#### 1.5.0-beta6 March 1st 2023 ####
2
-
Version 1.5.0-beta6 contains **breaking API changes** and new API changes for Akka.NET.
1
+
#### 1.5.0 March 2nd 2023 ####
2
+
Version 1.5.0 is a major new release of Akka.NET that is now marked as stable and ready for production use.
3
3
4
-
*[Akka.TestKit.Xunit2: Remove IAsyncLifetime from TestKit](https://github.com/akkadotnet/akka.net/pull/6475)
4
+
You can read the [full notes about what's changed in Akka.NET v1.5 here](https://getakka.net/community/whats-new/akkadotnet-v1.5.html). We also encourage you to watch our video: "[Akka NET v1.5 New Features and Upgrade Guide](https://www.youtube.com/watch?v=-UPestlIw4k)"
5
+
6
+
If you want to see the [full set of changes made in Akka.NET v1.5.0 so far, click here](https://github.com/akkadotnet/akka.net/milestone/7).
7
+
8
+
| COMMITS | LOC+ | LOC- | AUTHOR |
9
+
| --- | --- | --- | --- |
10
+
| 95 | 25041 | 24976 | Gregorius Soedharmo |
11
+
| 85 | 89784 | 18362 | Aaron Stannard |
12
+
| 76 | 95 | 95 | dependabot[bot]|
13
+
| 18 | 3201 | 908 | Ismael Hamed |
14
+
| 5 | 230 | 251 | Sergey Popov |
15
+
| 2 | 77 | 7 | Vagif Abilov |
16
+
| 2 | 38 | 8 | Brah McDude |
17
+
| 1 | 92 | 92 | nabond251 |
18
+
| 1 | 843 | 0 | Drew |
19
+
| 1 | 7 | 6 | Tjaart Blignaut |
20
+
| 1 | 5 | 4 | Sean Killeen |
21
+
| 1 | 32 | 1 | JonnyII |
22
+
| 1 | 26 | 4 | Thomas Stegemann |
23
+
| 1 | 203 | 5 | Ebere Abanonu |
24
+
| 1 | 2 | 2 | Popov Sergey |
25
+
| 1 | 2 | 2 | Denis |
26
+
| 1 | 16 | 0 | Damian |
27
+
| 1 | 11 | 2 | Nicolai Davies |
28
+
| 1 | 101 | 3 | aminchenkov |
29
+
| 1 | 1 | 1 | zbynek001 |
30
+
| 1 | 1 | 1 | Michel van Os |
31
+
| 1 | 1 | 1 | Adrian D. Alvarez |
5
32
6
33
#### 1.5.0-beta5 February 28th 2023 ####
7
34
Version 1.5.0-beta5 contains **breaking API changes** and new API changes for Akka.NET.
Copy file name to clipboardExpand all lines: docs/articles/clustering/cluster-sharding.md
+26-8
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ Cluster sharding is useful in cases when you want to contact with cluster actors
11
11
12
12
Cluster sharding can operate in 2 modes, configured via `akka.cluster.sharding.state-store-mode` HOCON configuration:
13
13
14
-
1.`persistence` (**default**) depends on Akka.Persistence module. In order to use it, you'll need to specify an event journal accessible by all of the participating nodes. An information about the particular shard placement is stored in a persistent cluster singleton actor known as *coordinator*. In order to guarantee consistent state between different incarnations, coordinator stores its own state using Akka.Persistence event journals.
14
+
1.`persistence` (**default**) depends on Akka.Persistence module. In order to use it, you'll need to specify an event journal accessible by all of the participating nodes. An information about the particular shard placement is stored in a persistent cluster singleton actor known as *coordinator*. In order to guarantee consistent state between different incarnations, coordinator stores its own state using Akka.Persistence event journals.**This setting is being deprecated after 1.5 - please move to using `state-store-mode=ddata` for all new and existing applications**.
15
15
2.`ddata` depends on Akka.DistributedData module. It uses Conflict-free Replicated Data Types (CRDT) to ensure eventually consistent shard placement and global availability via node-to-node replication and automatic conflict resolution. In this mode event journals don't have to be configured.
16
16
17
17
Cluster sharding may be active only on nodes in `Up` status - so the ones fully recognized and acknowledged by every other node in a cluster.
@@ -124,17 +124,23 @@ Using `ShardRegion.StartEntity` implies, that you're able to infer a shard id gi
124
124
125
125
### Remember Entities Store
126
126
127
-
There are two options for the remember entities store:
127
+
As of Akka.NET v1.5, there is now a dedicated setting for storing data about remembered entities:
128
128
129
-
1. Distributed data
130
-
2. Persistence
129
+
```hocon
130
+
akka.cluster.sharding{
131
+
state-store-mode = ddata
132
+
remember-entities-store = eventsourced or ddata
133
+
}
134
+
```
131
135
132
-
#### Remember Entities Persistence Mode
136
+
You don't need to configure this setting if you don't have `remember-entities=on`.
133
137
134
-
You can enable persistence mode (enabled by default) with:
It's recommended to use `state-store-mode=eventsourced` as it's much faster and more scalable than `ddata`, but in case you can't use Akka.Persistence for some reason you can still use DData.
218
+
211
219
You can enable DData mode by setting these configuration:
To support restarting entities after a full cluster restart (non-rolling) the remember entities store is persisted to disk by distributed data. This can be disabled if not needed:
@@ -402,3 +410,13 @@ In this example, we will use the built-in `HashCodeMessageExtractor`; this extra
402
410
shard id by applying murmur hash algorithm on the entity id so we don't need to create our own.
403
411
404
412
[!code-csharp[MessageExtractor.cs](../../../src/examples/Cluster/ClusterSharding/ShoppingCart/MessageExtractor.cs?name=ExtractorClass"Message envelope and extractor class")]
413
+
414
+
### Migrating to Different Sharding State Storage Modes
415
+
416
+
After you've gone live with Akka.Cluster.Sharding, one day you might decide it'd be better to migrate from `state-store-mode=persistence` to `state-store-mode=ddata` as the latter is more performant and resilient, plus the former (persistence) will be deprecated eventually.
417
+
418
+
Migrating between storage modes requires a **full restart of your Akka.Cluster** as it's a significant, far-reaching change. You can see a demonstration of how to perform this upgrade in our ["Akka NET v1.5 New Features and Upgrade Guide" video beginning at 12:53](https://youtu.be/-UPestlIw4k?t=773).
419
+
420
+
<!-- markdownlint-disable MD033 -->
421
+
<iframewidth="560"height="315"src="https://www.youtube.com/embed/-UPestlIw4k"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"allowfullscreen></iframe>
Copy file name to clipboardExpand all lines: docs/articles/deployment/aspnet-core.md
+4
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,10 @@ title: ASP.NET Core
5
5
6
6
# ASP.NET Core
7
7
8
+
<!-- markdownlint-disable MD033 -->
9
+
<iframewidth="560"height="315"src="https://www.youtube.com/embed/_BVC9Is8Tnk"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"allowfullscreen></iframe>
10
+
<!-- markdownlint-enable MD033 -->
11
+
8
12
## The Bridge
9
13
10
14
When deploying Akka.NET in ASP.NET Core, one major concern is how to expose `actor` in an ASP.NET Core controllers. We will design an `interface` for this!
This document contains specific upgrade suggestions, warnings, and notices that you will want to pay attention to when upgrading between versions within the Akka.NET v1.5 roadmap.
9
9
10
+
<!-- markdownlint-disable MD033 -->
11
+
<iframewidth="560"height="315"src="https://www.youtube.com/embed/-UPestlIw4k"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"allowfullscreen></iframe>
0 commit comments