1.5.15 January 9th 2024
Akka.NET v1.5.15 is a significant release for Akka.NET with some major feature additions and changes.
- Introducing
Akka.Analyzers
- Roslyn Analysis for Akka.NET - Akka.Cluster.Sharding: perf optimize message extraction, automate
StartEntity
andShardEnvelope
handling - Akka.Cluster.Tools: Make
ClusterClient
messages be serialized usingClusterClientMessageSerializer
- Akka.Persistence: Fix
LocalSnapshotStore
Metadata Fetch to ensure persistenceid match. - Akka.Delivery: Fix
ProducerControllerImpl<T>
state bug - Change MS.EXT and System package versioning to range - we now support all Microsoft.Extensions packages from
(6.0,]
. - Akka.Serialization:
INoSerializationVerificationNeeded
does not handleIWrappedMessage
correctly
Akka.Analyzers
The core Akka NuGet package now references Akka.Analyzers, a new set of Roslyn Code Analysis and Code Fix Providers that we distribute via NuGet. You can see the full set of supported Akka.Analyzers rules here.
Akka.Cluster.Sharding Changes
In #6863 we made some major changes to the Akka.Cluster.Sharding API aimed at helping improve Cluster.Sharding's performance and ease of use. However, these changes may require some effort on the part of the end user in order to take full advantage:
ExtractEntityId
andExtractShardId
have been deprecated as they fundamentally can't be extended and can't benefit from the performance improvements introduced into Akka.NET v1.5.15. It is imperative that you migrate to using theHashCodeMessageExtractor
instead.- You no longer need to handle
ShardRegion.StartEntity
orShardingEnvelope
inside yourIMessageExtractor
implementations, and in factAK2001
(part of Akka.Analyzers) will automatically detect this and remove those handlers for you. Akka.NET automatically handles these two message types internally now.
ClusterClient Serialization Changes
In #7032 we solved a long-standing serialization problem with the ClusterClient
where Send
, SendToAll
, and Publish
were not handled by the correct internal serializer. This has been fixed by default in Akka.NET v1.5.15, but this can potentially cause wire compatibility problems during upgrades - therefore we have introduced a configuration setting to toggle this:
# re-enable legacy serialization
akka.cluster.client.use-legacy-serialization = on
That setting is currently set to on
by default, so v1.5.15 will still behave like previous versions of Akka.NET. However, if you have been affected by serialization issues with the ClusterClient
(such as #6803) you should toggle this setting to off
.
See "Akka.NET v1.5.15 Upgrade Advisories" for full details on some of the things you might need to do while upgrading to this version of Akka.NET.
You can see the full set of changes for Akka.NET v1.5.15 here.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
16 | 2228 | 1490 | Aaron Stannard |
9 | 9 | 9 | dependabot[bot] |
2 | 610 | 173 | Gregorius Soedharmo |
2 | 337 | 0 | Drew |
2 | 124 | 118 | Lehonti Ramos |
1 | 2 | 2 | Sergey Popov |
1 | 108 | 25 | Yaroslav Paslavskiy |
1 | 1 | 1 | Bert Lamb |
Changes:
- e504c34 added v1.5.15 release notes (#7053)
- 9d2efe0 [Docs] Adding Akka.NET v1.5.15 upgrade advisories (#7052)
- f03fc68 troubleshooting
ShardingRegion.StartEntity
handling changes (#7051) - b6a4a5c distribute Akka.Analyzers as transitive dependency through Akka (#7050)
- 38ad362 Akka.Cluster.Sharding
AK2001
cleanup (#7049) - 3285197 Bump Microsoft.Data.SQLite from 7.0.13 to 8.0.1 (#7048)
- 3c16fdc added AK2001 warning docs (#7047)
- 97323d1 Fix LocalSnapshotStore Metadata Fetch to ensure persistenceid match. (#7040)
- a2c0df4 Docs: defining Akka.Analyzer rules (#7039)
- 0486f97
struct
s inAkka.Streams
with exclusively read-only members were madereadonly
(#6941)
See More
- fd41a82 Akka.Cluster.Sharding: perf optimize message extraction, automate
StartEntity
andShardEnvelope
handling (#6863) [ #6717 ] - 5620f02 Sealed uninherited
internal
classes inAkka.Streams
(#6940) - 1c4f071 Akka.Delivery: fix
ProducerControllerImpl<T>
state bug (#7034) [ #7033 ] - 70787ae resolved build warning inside
AkkaProtocolSpec
(#7036) - ca1889d Documentation redirect fix(#7025). (#7035)
- db3d68e Bump Microsoft.Data.SQLite from 7.0.13 to 8.0.0 (#6992)
- db1119c Bump BenchmarkDotNet.Diagnostics.dotTrace, System.Collections.Immutable and Microsoft.Extensions.DependencyInjection.Abstractions (#7030)
- 1e24aab Make ClusterClient messages be serialized using ClusterClientMessageSerializer (#7032)
- 1a06ec1 added Akka.Analyzer reference (#7031)
- 2633f91 Change MS.EXT and System package versioning to ranged (#7029)
- dbac721 Bump Google.Protobuf from 3.25.0 to 3.25.1 (#7004)
- 3aeebb0 Cleanup warnings (#7026)
- b3f7d38 Bump BenchmarkDotNetVersion from 0.13.10 to 0.13.11 (#7022)
- b7c2871 DData Serializer Benches (#7013)
- 04630da Akka.Serialization:
INoSerializationVerificationNeeded
does not handleIWrappedMessage
correctly (#7010) - 93af6e4 Bump BenchmarkDotNetVersion from 0.13.10 to 0.13.11 (#7015)
- 8311f2a fixed Hyperion test issues (#7012)
- 1fa70e7
build.fsx
: change test targets fromnet7.0
tonet8.0
(#7011) - 527d1ca Bump Microsoft.NET.Test.Sdk from 17.7.2 to 17.8.0 (#6986)
- c03ff1c migrate build and test system to .NET 8 (#7008)
- f4f0077 Fix link to Build instructions in README.md (#6987)
- 6a5b194 Bump Microsoft.SourceLink.GitHub from 1.1.1 to 8.0.0 (#7005)
- aeec1b9 #6816 Akka.DistributedData.LightningDb: move durable folder creation outside of actor constructor (#6983)
- f7fd7ab Bump Google.Protobuf from 3.24.4 to 3.25.0 (#6981)
This list of changes was auto generated.