Releases: akkadotnet/akka.net
Akka.NET v1.5.40
1.5.40 March 24th, 2025
- Remote:
Endpoint
actor cleanup - Streams: Implement nullability in
Buffer
- Streams: Refactor
SelectAsyncUnordered
ContinueWith
to local function - Core: Cleanup build warnings
- Streams: Make
SelectAsync
check equality by reference instead of by struct value - Query.InMemory: Properly unwrap tagged messages in all queries
- Resolve Akka.Delivery and Akka.Cluster.Sharding.Delivery issues
- Persistence: Remove Akka.Persistence.Sql.Common and Akka.Persistence.Query.Sql packages
- Persistence: Remove Akka.Persistence.Sqlite
2 contributors since release 1.5.39
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
28 | 1177 | 2458 | Aaron Stannard |
7 | 788 | 9534 | Gregorius Soedharmo |
To see the full set of changes in Akka.NET v1.5.40, click here.
Changes:
- 8ab24c1 Update 1.5.40 release notes (#7576)
- f56ebb3 Build Warnings: Miscellanous (#7575)
- 15e5d8b fixed TestKit build warnings (#7572)
- 4471d6a fixed all
ClusterSingletonManager.DefaultConfig()
build warnings (#7571) - 1f9a678 Akka.DistributedData.Tests: resolved all build warnings (#7570)
- 8ccc78e Akka.Remote: fixed all build warnings (#7567)
- b2661ac Akka.Cluster: Fix AK1004 warnings (#7279)
- 09e7e50 Akka.Tests: fixed build warnings (#7569)
- be32427 Akka.TestKit.Tests: fix build warnings (#7568)
- 2564c51 harden
QueueSinkSpec
(#7566)
See More
- 2d5025a Added debug logging to
DistributedPubSubRestartSpecs
(#7563) - 76e0eda Akka.Streams.TestKit: remove all
ConfigureAwait(false)
(#7561) - a7fa31a Remove Akka.Persistence.Sql.Common and Akka.Persistence.Sqlite altogether (#7559)
- 39e3ea7 Add Akka.Persistence.Sql.Common deprecation advisory (#7560)
- 9d73a21 Update RELEASE_NOTES.md for 1.5.40 release (#7558)
- ad69cfd Remove Akka.Persistence.Sql.Common and Akka.Persistence.Query.Sql (#7551) [ #7550 ]
- 4cd5dca Akka.Streams.Test: harden
FlowThrottleSpecs
(#7554) - ce9ef9c Resolve Akka.Delivery and Akka.Cluster.Sharding.Delivery issues (#7538) [ #7529, #7530 ]
- eb888f1 Fix race conditions in CancelableDelay tests using TaskCompletionSource for reliable synchronization (#7553)
- 96c0dd5 Akka.Persistence.Sqlite: remove batching journal specs (#7552)
- 224a3fa Akka.Peristence.Query.InMemory: properly unwrap
Tagged
messages in all queries (#7548) [ #7528 ] - 28fa378 Chore: remove unused
IMemoryJournal
API (#7547) - 485c17f
SelectAsync
: check equality by reference on placeholder, rather than by value onstruct
(#7543) - a655bef Fix racy
PersistentFsmSpec
s (#7545) - acf66b0 Akka.Persistence.Query.InMemory.Tests: standardize
refresh-interval
(#7544) - a0d7201 CodeQL: fix
net48
breakage (#7542) - 7c22d05 Fix race condition in cancelable_delay test by using TaskCompletionSource for synchronization (#7540)
- a1996d4 Streams: Port missing SelectAsync unit tests (#7532) [ #7533, #7534 ]
- 9de5ed0
TcpSpec
: hardenChainOfEchoes
spec (#7539) - 5015c5c Akka.Streams: Have
SelectAsyncUnordered
use localasync
function instead ofContinueWith
(#7531) - 5793a6b chore: clean up build warnings (#7522)
- 04a98d3 Implement nullability in streams Buffer (#7496)
- 33daa3c Akka.Remote:
Endpoint
actor cleanup (#7524) - 3f972cc Akka.Analyzer: Add AK2002 documentation (#7527)
- 47a6609 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.39
1.5.39 March 14th, 2025
Akka.NET v1.5.39 contains a mission-critical bugfix for most Akka.Streams users.
- Akka.Cluster.Sharding: recursively unpack
ShardingEnvelope
contents insideIMessageExtract.EntityMessage
- fixed a small edge case bug that could cause theShardingEnvelope
to be delivered to actors rather than the content inside the envelope. - Akka.Util: improve
Result<T>
- small set of API changes here aimed at making Akka.Streams easier to reason about. - Akka.Streams: Fixed race conditions + unsafe struct assignment in
SelectAsync
- this is a bug that's popped up in Akka.Persistence.Sql, Akka.Streams.Kafka, and many other places whereSelectAsync
is used: #7518
3 contributors since release 1.5.38
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
6 | 242 | 251 | Aaron Stannard |
1 | 42 | 2 | Arjen Smits |
1 | 107 | 1 | Gregorius Soedharmo |
To see the full set of changes in Akka.NET v1.5.39, click here.
Changes:
- b1973cb Added v1.5.39 release notes (#7525)
- 02c8a24 Update target frameworks from net7.0/netcoreapp3.1 to net8.0 (#7523)
- 253973e Fixed race conditions + unsafe struct assignment in
SelectAsync
(#7521) [ #7518 ] - 10b8223 Akka.Util: improve
Result<T>
(#7520) - 6a5c7c0 Update persistence-testing.md docs (#7516)
- 3ca3682 Add SelectAsync regression test for Akka.Persistence.Sql (#7515)
- e25af24 Added "Why Learn Akka.NET?" video to homepage (#7511)
- 5957510 Update RELEASE_NOTES.md
- 2784f34 Have
ShardingAdapter
recursively call the underlyingIMessageExtractor
(#7474) [ #7470 ]
This list of changes was auto generated.
Akka.NET v1.5.38
1.5.38 February 17th 2025
Akka.NET v1.5.38 is a maintenance release with several bug fixes and minor quality of life API additions
- Core: Add
ByteString.ToReadOnlySpan()
- TestKit: Add
IntentionalRestart
auto received message to easily test actor restart behavior - Streams: Fix null exceptions being propagated upstream by downstream completion
- Core: Add death watch support to
Ask()
FutureActorRef
temporary actors to prevent memory leaks - Documentation: Add new AK1008 Akka.Analyzers rule
- Core: Bump Akka.Analyzers version from 0.3.0 to 0.3.1
To see the full set of changes in Akka.NET v1.5.38, click here.
4 contributors since release 1.5.37
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
5 | 110 | 9 | Gregorius Soedharmo |
3 | 231 | 28 | Aaron Stannard |
1 | 81 | 0 | Lydon Chandra |
1 | 24 | 20 | Dmitriy Barbul |
Changes:
- 7905b0f Update RELEASE_NOTES.md for 1.5.38 release (#7507)
- c873710 Bump Akka.Analyzer to 0.3.1 (#7506)
- 2d84f02 Add missing table entry for AK1008 (#7505)
- a91adbf [Docs] Add AK1008 documentation (#7504)
- 50b6cfe Akka.Actor:
Context.Watch
onFutureActorRef<T>
creates memory leaks (#7502) [ #7501 ] - 1b52686 [Streams] Fix null exceptions being propagated on downstream completion (#7497)
- 8ea9d3b Update ClusterSharding.Node example to use shared SQLite store (#7494)
- 1f5688d Akka.Actor: Added built-in
IntentionalRestart
message to test actor restart behaviors (#7493) [ #7492 ] - c8ebf77 Add ByteString ToReadOnlySpan (#7487)
- ea2d195 Make sure all library projects uses dual targeting (#7489)
Akka.NET v1.5.37
1.5.37 January 23rd 2025
Akka.NET v1.5.36 is a maintenance release that rolls back earlier changes made in Akka.NET v1.5.35 that have caused problems in some downstream Akka.NET plugins.
- Rollback to using 6.0 MSFT libraries <- moving all of our BCL dependencies to 8.0 created issues for our .NET 6-9 users when adopting Akka.NET packages that only targeted .NET Standard, so for the time being we're normalizing everything back to 6.0
- Akka.Persistence:
Akka.Persistence.Journal.AsyncWriteJournal+Resequencer
is created as a top-level/user
actor instead of a child of the journal
To see the full set of changes in Akka.NET v1.5.37, click here.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
4 | 9 | 7 | Aaron Stannard |
Changes:
- 0bc1843 added v1.5.37 release notes (#7486)
- c437bff Rollback to using 6.0 MSFT libraries (#7482)
- e52b815 Revert "DData: Fix BCL update causing DeltaPropagationSelector throwing Index…" (#7483)
- 84b767a
Resequencer
should always be a child of the journal actor (#7481) - 759e93f Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.36
1.5.36 January 22nd 2025
Akka.NET v1.5.36 is a maintenance release that addresses several bugs and added several improvements.
- Core: Implement nullability for
ActorCell
- Core: Add filtering to
ActorCell
lifecycle metrics - Streams: Complete MergeHub Sink gracefully on graceful stop
To see the full set of changes in Akka.NET v1.5.36, click here.
2 contributors since release 1.5.35
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
4 | 371 | 251 | Aaron Stannard |
1 | 37 | 2 | Pavel Anpin |
Changes:
- 848a7b2 Update RELEASE_NOTES.md for 1.5.36 release (#7479)
- a64d954 made
IActorTelemetry
events nullable (#7478) - f80a2b1 Complete MergeHub Sink gracefully on NormalShutdownException (#7468)
- 2ee5176 made
ActorCell
usenullable
(#7475) - 429ebb2 Added mailing list and youtube links (#7473)
- a1c0042 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.35
1.5.35 January 13th 2025
Akka.NET v1.5.35 is a maintenance release that addresses several bugs and added several improvements.
- Persistence: Add per-plugin recovery permiter actor
- Persistence: Add support for optional snapshots
- TestKit: Improve XUnit assertion message formatting
- Sharding: Add
Broadcast
message support to sharded daemon process - Core: Bump Microsoft.Extensions and BCL library version to 8.0.*
- DData: Fix 8.0 BCL library causing DeltaPropagationSelector to throw IndexOutOfBoundException
- Sharding: Fix Shard fails to unwrap buffered messages
- Core: Deprecate AddOrSet utility method
To see the full set of changes in Akka.NET v1.5.35, click here.
5 contributors since release 1.5.34
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
10 | 431 | 95 | Gregorius Soedharmo |
7 | 4535 | 4515 | Aaron Stannard |
1 | 90 | 6 | Chris Hoare |
1 | 5 | 5 | Simon Cropp |
1 | 173 | 34 | Milan Gardian |
Changes:
- b160721 Update RELEASE_NOTES.md for 1.5.35 release (#7464)
- 39cce0a obsolete AddOrSet (#7408)
- f362af5 Trim dead codes
- 23976eb Update API approval list
- 388ed9d Fix broken unit test
- 1cdf9da Add IShardingBufferMessageAdapter.UnApply
- 4b85133 Improve code
- 8073bec Fix code error
- 6ffd304 Add reproduction test
- 5c7c967 DData: Fix BCL update causing DeltaPropagationSelector throwing IndexOutOfBoundException (#7462)
See More
- 94bcc66 upgrade MSFT.EXT and BCL libraries to 8.0+ (#7460)
- 81b94f4 Remove more F# duplicate package warnings
- 77d0aa2 remove duplicate package reference on Akka.FSharp
- 1f7ffa7 Added 2025 copyright headers (#7454)
- 9c64ecb reorganized dependencies (#7453)
- 51ad038 Add
Broadcast
message support toShardedDaemonProcess
(#7451) - 80f73bc Added
ShardingEnvelope
checks forShardingMessageAdapter
(#7449) - 468546c Add support for optional snapshots (#7444)
- 26383ec Safer formatting of Xunit assertion messages (#7446)
- 848cd4c Add per-plugin recovery permitter actors (#7448)
- ccae284 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.34
1.5.34 January 7th 2025
- TestKit: Fix DelegatingSupervisorStrategy KeyNotFoundException
- Core: Improve actor telemetry type name override
- Sharding: Add
IShardingBufferMessageAdapter
to support tracing over sharding
To see the full set of changes in Akka.NET v1.5.34, click here.
3 contributors since release 1.5.33
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
2 | 311 | 16 | Gregorius Soedharmo |
2 | 17 | 9 | Aaron Stannard |
1 | 1 | 1 | jasonmar |
Changes:
- 90c577e Update RELEASE_NOTES.md for 1.5.34 release (#7443)
- 497315a Update Directory.Build.props
- e425975 Add
IShardingMessageAdapter
(#7441) - 08dd5bd Update Akka.FSharp README Interop with Task Parallel Library Example (#7440)
- 90e60c6 Improve actor telemetry types (#7439)
- 400e7cb close #7437 - fix KeyNotFoundException in DelegatingSupervisorStrategy (#7438)
- 507cff4 Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.5.33
1.5.33 December 23rd 2024
- Bump Akka.Analyzers from 0.2.5 to 0.3.0
- Core: Throw better error message when
Stash()
stashes null message - Core: Fix
IWrappedMessage
andIDeadLetterSuppression
handling - Core: Make actor start/stop telemetry descriptors overridable
- Core: Fix
Result.FromTask
edge case handling - Remote: HandleStashedInbound performance improvement
- TestKit: Make startup timeout configurable
- TestKit: Make InternalTestActor override its SupervisionStrategy
- Streams: Add custom log level argument to
Log
stage
To see the full set of changes in Akka.NET v1.5.33, click here.
4 contributors since release 1.5.32
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
9 | 513 | 117 | Aaron Stannard |
3 | 299 | 49 | Gregorius Soedharmo |
1 | 32 | 1 | Yan Pitangui |
1 | 3 | 4 | Simon Cropp |
Changes:
- dadabd0 Update RELEASE_NOTES.md for 1.5.33 release (#7436)
- 8bbffcd Fix
Akka.Util.Result
edge case (#7433) - 0a01453 Make actor start / stop telemetry descriptors overrideable (#7434)
- 61bdebf Harden
LogFormatSpec
(#7429) [ #7421 ] - f2ec912 Benchmark to measure
ShardingCoordinator.CoordinatorState
serialization over DData (#7428) - 0cf567a Fixed:
IWrappedMessage
+IDeadLetterSuppression
handling (#7414) - 96645a5 Make InternalTestActor override its SupervisionStrategy (#7221)
- 7e85cac Throw clearer error message during
Stash()
innull
message cases (#7425) [ #7938 ] - 487bb85 Add custom log level to stream Log stage (#7424)
- 1b2e3ab Make TestKit startup timeouts configurable (#7423) [ #7259 ]
Akka.NET v1.5.32
1.5.32 December 4th 2024
Akka.NET v1.5.32 is a maintenance release that addresses several bugs.
- Cluster.Tools: Deprecate ClusterSingleton.Init() method
- Remote: Ensure RemoteActorRef are serialized correctly when using multiple transports
- Sharding: Harden event-sourced RememberEntities infrastructure against transient persistence failures
To see the full set of changes in Akka.NET v1.5.32, click here.
3 contributors since release 1.5.31
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
8 | 750 | 350 | Aaron Stannard |
5 | 505 | 15 | Gregorius Soedharmo |
1 | 2 | 2 | Ran Trifon |
Changes:
- 2f2bdf7 Add missing information to RELEASE_NOTES (#7404)
- c8b1c5b Update RELEASE_NOTES.md for 1.5.32 release (#7403)
- 1f448e9 Added reproduction spec for missing custom mailbox when using DI (#7402)
- 1a22e39 Akka.Cluster.Sharding: harden event-sourced
RememberEntities
infrastructure against transient Akka.Persistence failures (#7401) [ #7399 ] - 4becbdd cleaned up
RememberEntitiesFailureSpecs
(#7400) - 0968e9d Update books.md (#7397)
- 0141b6a Add note about duplicate
PeriodicTimer
messages when actors are busy (#7396) - 4ae4792 Akka.Remote: ensure
RemoteActorRef
are serialized with correctAddress
when using multiple transports (#7393) [ #7378 ] - e412b58 Harden Lease docs unit test (#7394)
- bd8a823 Added multi-transport addressing spec (#7391) [ #7378 ]
See More
- 866e053 Cleaned up
TestTransport
XML-DOCTBD
s (#7390) - 36b0ec6 Deprecate
ClusterSingleton.Init()
and add missing singleton feature toClusterSingletonSettings
(#7387) - 4082e9c [DOCS] Add custom lease documentation (#7388)
- 0ad0b77 Update RELEASE_NOTES.md
- 84c2bcd Add v1.5.31 upgrade advisory (#7385)
This list of changes was auto generated.
Akka.NET v1.5.31
1.5.31 November 11th 2024
Akka.NET v1.5.31 is a maintenance release that addresses several bugs and added new features.
- Persistence: Add logging for failed DeleteAsync() that was caused by failed SaveSnapshot()
- Persistence: Fix RecoveryTick timer leak
- Serialization.Hyperion: Fix serializer config bug
- Sharding: Fix potential
ArgumentException
during shard re-balancing - Cluster: Fix multiple
Member
with the sameAddress
crashingClusterDaemon
- Core: Fix
Stash
filtering out identicalEnvelope
s - Streams: Fix
ShellRegistered
message deadletter log - Sharding: Make lease release in
Shard.PostStop
be blocking instead of using detached async task - Cluster.Tools: Add missing singleton detection feature for easier infrastructure debugging
Upgrade Advisory
There is a slight change in how actor Stash
behavior. In previous behavior, Stash
will filter out any messages that are identical (see explanation below) when it is prepended with another. It will not do so now, which is the actual intended behavior.
This change will affect Akka.Persistence
users or users who use the Stash.Prepend()
method in their code. You will need to add a de-duplication code if your code depends on sending identical messages multiple times to a persistence actor while it is recovering.
Messages are considered as identical if they are sent from the same sender actor and have a payload message that Equals()
to true against another message. Example payload types would be an object pointing to the same memory address (ReferenceEquals()
returns true), value types (enum, primitives, structs), and classes that implements the IEquatable
interface.
To see the full set of changes in Akka.NET v1.5.31, click here.
2 contributors since release 1.5.30
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
9 | 627 | 154 | Gregorius Soedharmo |
4 | 133 | 40 | Aaron Stannard |
Changes:
- fe6fa8d Update RELEASE_NOTES.md for 1.5.31 release (#7384)
- fb526e5 Add missing cluster singleton detection (#7363)
- 322c494 Block lease release in Shard PostStop (#7383)
- 902daf5 clarified that you don't need to handle ShardRegion.StartEntity after version v1.5.15 of Akka.NET (#7380)
- 699aff2 [Streams] Fix ShellRegistered message deadletter log (#7376)
- 3700809 Added reproduction for missing
Stash.Stash
messages in Akka.,Persistence actors (#7374) [ #7373 ] - 67fad90 Fix EventSourced Stash filtering out identical envelopes (#7375)
- 0cbddb5 fixed bugs with multiple
Member
s with sameAddress
crashingClusterDaemon
(#7371) [ #7370 ] - 02157c3 fix potential
ArgumentException
during shard rebalancing (#7367) [ #7365 ] - 7685a6f Fix Hyperion serializer config bug (#7364)