Releases: akkadotnet/akka.net
Akka.NET v1.5.57
1.5.57 December 11th, 2025
Akka.NET v1.5.57 is a minor release containing significant new features for Akka.Persistence and structured/semantic logging.
Akka.Persistence Completion Callbacks and Async Handler Support
- Persistence completion callbacks via Defer - simplified alternative - This release adds completion callback and async handler support to
Persist,PersistAsync,PersistAll, andPersistAllAsyncmethods in Akka.Persistence. Key improvements include:- Async Handler Support: All persist methods now support
Func<TEvent, Task>handlers for async event processing - Completion Callbacks:
PersistAllandPersistAllAsyncnow accept optional completion callbacks (both syncActionand asyncFunc<Task>) that execute after all events are persisted and handled - Ordering Guarantees: Completion callbacks use
Defer/DeferAsyncinternally to maintain strict ordering guarantees - Zero Breaking Changes: All new APIs are additive overloads
- Async Handler Support: All persist methods now support
Persistence Code Examples:
// Async handler support - process events asynchronously
Persist(new OrderPlaced(orderId), async evt =>
{
await _orderService.ProcessOrderAsync(evt);
});
// PersistAll with completion callback - know when all events are done
PersistAll(orderEvents, evt =>
{
_state.Apply(evt);
}, onComplete: () =>
{
// All events persisted and handlers executed
_logger.Info("Order batch completed");
Sender.Tell(new BatchComplete());
});
// PersistAll with async handler AND async completion callback
PersistAll(events,
handler: async evt => await ProcessEventAsync(evt),
onCompleteAsync: async () =>
{
await NotifyCompletionAsync();
Sender.Tell(Done.Instance);
});
// PersistAllAsync with completion - allows commands between handlers
PersistAllAsync(largeEventBatch,
handler: evt => _state.Apply(evt),
onComplete: () => Sender.Tell(new BatchProcessed()));The implementation maintains Akka.Persistence's strict ordering guarantees by using Defer/DeferAsync for completion callbacks, ensuring they execute in order even when called with empty event collections. The new async handler invocations (IAsyncHandlerInvocation) are processed via RunTask to preserve the actor's single-threaded execution model.
Native Semantic Logging Support
- Add native semantic logging support with property extraction - Fixes issue #7932. This release adds comprehensive structured logging support to Akka.NET with both positional (
{0}) and named ({PropertyName}) message template parsing, enabling seamless integration with modern logging frameworks like Serilog, NLog, and Microsoft.Extensions.Logging. Key capabilities include:- New
LogMessage.PropertyNamesandGetProperties()APIs for property extraction SemanticLogMessageFormatteras the new default formatter- Performance optimized with 75% allocation reduction compared to the previous implementation
- Zero new dependencies and fully backward compatible
- EventFilter support for semantic templates in unit tests
- New
1 contributor since release 1.5.56
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 2 | 3703 | 81 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.57, click here:
Changes:
- 5a532c8 Update RELEASE_NOTES.md for 1.5.57 release (#7961)
- 9d85bb8 Update RELEASE_NOTES.md for 1.5.57-beta2 release (#7959)
- 43838bf feat(persistence): completion callbacks via Defer - simplified alternative to #7937 (#7954) (#7957)
- e94b4ad Remove Cmd demand from Windows release pipeline
- 5e4e5de Update RELEASE_NOTES.md for 1.5.57-beta1 release (#7956)
- 0f23948 feat: Add native semantic logging support with property extraction (#7933) (#7955) [ #7932 ]
This list of changes was auto generated.
Akka.NET v1.5.57-beta2
1.5.57-beta2 December 2nd, 2025
Akka.NET v1.5.57-beta2 is a beta release containing significant new APIs for Akka.Persistence that add completion callbacks and async handler support.
New Features:
- Persistence completion callbacks via Defer - simplified alternative - This release adds completion callback and async handler support to
Persist,PersistAsync,PersistAll, andPersistAllAsyncmethods in Akka.Persistence. Key improvements include:- Async Handler Support: All persist methods now support
Func<TEvent, Task>handlers for async event processing - Completion Callbacks:
PersistAllandPersistAllAsyncnow accept optional completion callbacks (both syncActionand asyncFunc<Task>) that execute after all events are persisted and handled - Ordering Guarantees: Completion callbacks use
Defer/DeferAsyncinternally to maintain strict ordering guarantees - Zero Breaking Changes: All new APIs are additive overloads
- Async Handler Support: All persist methods now support
Code Examples:
// Async handler support - process events asynchronously
Persist(new OrderPlaced(orderId), async evt =>
{
await _orderService.ProcessOrderAsync(evt);
});
// PersistAll with completion callback - know when all events are done
PersistAll(orderEvents, evt =>
{
_state.Apply(evt);
}, onComplete: () =>
{
// All events persisted and handlers executed
_logger.Info("Order batch completed");
Sender.Tell(new BatchComplete());
});
// PersistAll with async handler AND async completion callback
PersistAll(events,
handler: async evt => await ProcessEventAsync(evt),
onCompleteAsync: async () =>
{
await NotifyCompletionAsync();
Sender.Tell(Done.Instance);
});
// PersistAllAsync with completion - allows commands between handlers
PersistAllAsync(largeEventBatch,
handler: evt => _state.Apply(evt),
onComplete: () => Sender.Tell(new BatchProcessed()));Technical Details:
The implementation maintains Akka.Persistence's strict ordering guarantees by using Defer/DeferAsync for completion callbacks, ensuring they execute in order even when called with empty event collections. The new async handler invocations (IAsyncHandlerInvocation) are processed via RunTask to preserve the actor's single-threaded execution model.
1 contributor since release 1.5.57-beta1
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 1 | 1386 | 67 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.57-beta2, click here
1.5.57-beta1 December 2nd, 2025
Akka.NET v1.5.57-beta1 is a beta release containing a significant new feature for structured/semantic logging.
New Features:
- Add native semantic logging support with property extraction - Fixes issue #7932. This release adds comprehensive structured logging support to Akka.NET with both positional (
{0}) and named ({PropertyName}) message template parsing, enabling seamless integration with modern logging frameworks like Serilog, NLog, and Microsoft.Extensions.Logging. Key capabilities include:- New
LogMessage.PropertyNamesandGetProperties()APIs for property extraction SemanticLogMessageFormatteras the new default formatter- Performance optimized with 75% allocation reduction compared to the previous implementation
- Zero new dependencies and fully backward compatible
- EventFilter support for semantic templates in unit tests
- New
1 contributor since release 1.5.56
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 1 | 2317 | 14 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.57-beta1, click here
Changes:
- 9d85bb8 Update RELEASE_NOTES.md for 1.5.57-beta2 release (#7959)
- 43838bf feat(persistence): completion callbacks via Defer - simplified alternative to #7937 (#7954) (#7957)
- e94b4ad Remove Cmd demand from Windows release pipeline
- 5e4e5de Update RELEASE_NOTES.md for 1.5.57-beta1 release (#7956)
- 0f23948 feat: Add native semantic logging support with property extraction (#7933) (#7955) [ #7932 ]
This list of changes was auto generated.
Akka.NET v1.5.57-beta1
1.5.57-beta1 December 2nd, 2025
Akka.NET v1.5.57-beta1 is a beta release containing a significant new feature for structured/semantic logging.
New Features:
- Add native semantic logging support with property extraction - Fixes issue #7932. This release adds comprehensive structured logging support to Akka.NET with both positional (
{0}) and named ({PropertyName}) message template parsing, enabling seamless integration with modern logging frameworks like Serilog, NLog, and Microsoft.Extensions.Logging. Key capabilities include:- New
LogMessage.PropertyNamesandGetProperties()APIs for property extraction SemanticLogMessageFormatteras the new default formatter- Performance optimized with 75% allocation reduction compared to the previous implementation
- Zero new dependencies and fully backward compatible
- EventFilter support for semantic templates in unit tests
- New
1 contributor since release 1.5.56
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 1 | 2317 | 14 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.57-beta1, click here
Changes:
- e94b4ad Remove Cmd demand from Windows release pipeline
- 5e4e5de Update RELEASE_NOTES.md for 1.5.57-beta1 release (#7956)
- 0f23948 feat: Add native semantic logging support with property extraction (#7933) (#7955) [ #7932 ]
This list of changes was auto generated.
Akka.NET v1.5.56
1.5.56 November 25th, 2025
Akka.NET v1.5.56 is a patch release containing important bug fixes for Akka.Remote and Akka.Streams.
Bug Fixes:
-
Fix: Akka.Remote should not shutdown on invalid TLS traffic - Fixes issue #7938 where invalid traffic (like HTTP requests) hitting a TLS-enabled Akka.Remote port would cause the entire ActorSystem to shut down. Server now rejects invalid connections gracefully without terminating.
-
fix(streams): prevent race condition in ChannelSource on channel completion - Fixes issue #7940 where a
NullReferenceExceptioncould occur when completing aChannelWriterwhile the stream is waiting for data. Added atomic flag to prevent race condition betweenOnReaderCompleteandOnValueReadcallbacks.
1 contributor since release 1.5.55
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 2 | 162 | 6 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.56, click here
Changes:
- dae0a40 Prepare v1.5.56 release (#7953)
- 9601f62 Fix: Akka.Remote should not shutdown on invalid TLS traffic (#7939) (#7952) [ #7839, #7938 ]
- 70695d9 fix(streams): prevent race condition in ChannelSource on channel completion (#7941) (#7951) [ #7940 ]
This list of changes was auto generated.
Akka.NET v1.5.55
1.5.55 October 26th, 2025
Akka.NET v1.5.55 is a patch release containing important stability and security improvements for Akka.Remote.
Akka.Remote Stability Improvements:
- Akka.Remote: harden EndpointWriter against serialization failures - Fixes issue #7922 by hardening the
EndpointWriteragainst a broader range of potential serialization failures, improving overall remoting stability.
Akka.Remote Security Improvements:
-
Custom certificate validation with single execution path - fixes mTLS asymmetry bug - Fixes issue #7914 by introducing programmatic certificate validation helpers through the new
CertificateValidationfactory class. This release adds 7 new validation helper methods includingValidateChain(),ValidateHostname(),PinnedCertificate(),ValidateSubject(),ValidateIssuer(),Combine(), andChainPlusThen(). The update also fixes an mTLS asymmetry bug where server-side hostname validation was not being applied consistently with client-side validation, all while maintaining full backward compatibility with existing HOCON-based validation. -
Fix DotNettySslSetup being ignored when HOCON has valid SSL config - Fixes issue #7917 where programmatic
DotNettySslSetupsettings were incorrectly being overridden by HOCON configuration. Programmatic configuration now correctly takes precedence over HOCON defaults as intended.
1 contributor since release 1.5.54
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 3 | 1605 | 289 | Aaron Stannard |
Changes:
- 2492bdb Prepare v1.5.55 release (#7926)
- 2dc1c57 Akka.Remote: harden
EndpointWriteragainst serialization failures (#7923) (#7925) [ #7922 ] - 98c25d1 feat(remote): custom certificate validation with single execution path - fixes mTLS asymmetry bug (#7915) (#7921) [ #7914 ]
- 1e8d606 Fix DotNettySslSetup being ignored when HOCON has valid SSL config (#7918) (#7919) [ #7917 ]
- 77ba03c Prepare v1.5.54 release (#7913)
This list of changes was auto generated.
Akka.NET v1.5.54
1.5.54 October 17th, 2025
Akka.NET v1.5.54 is a patch release containing important bug fixes for Akka.Streams and Akka.DistributedData.
Bug Fixes:
-
Fix SourceRef.Source and SinkRef.Sink non-idempotent property bug - Fixes issue #7895 where
ISourceRef<T>.SourceandISinkRef<T>.Sinkproperties created new stage instances on every access, causing race conditions and intermittent subscription timeouts. These properties are now idempotent usingLazy<T>, preventing failures from accidental property access (debugger inspection, logging, serialization frameworks). -
Fix LWWDictionary.Delta ArgumentNullException when underlying delta is null - Fixes issue #7910 where
LWWDictionary.Deltawould throwArgumentNullExceptionwhen the underlyingORDictionary.Deltawasnull, which is a legitimate state after initialization or callingResetDelta().
1 contributor since release 1.5.53
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 2 | 159 | 20 | Aaron Stannard |
Changes:
- e7bf0c7 Prepare v1.5.54 release
- eb020d0 Fix LWWDictionary.Delta ArgumentNullException when underlying delta is null (#7910) (#7911) (#7912)
- 53e1b3d [v1.5] Fix SourceRef.Source and SinkRef.Sink non-idempotent property bug (#7907) [ #7895 ]
- e1c4b4f Prepare v1.5.53 release (#7900)
This list of changes was auto generated.
Akka.NET v1.5.53
1.5.53 October 9th, 2025
Akka.NET v1.5.53 is a security patch containing important fixes for TLS/SSL hostname validation and improved error diagnostics for certificate authentication issues.
Security Fixes:
- Fix TLS hostname validation bug and add configurable validation - Fixes a critical bug where TLS clients validated against their own certificate DNS name instead of the remote server address, particularly affecting mutual TLS scenarios. This release also adds a new
validate-certificate-hostnameconfiguration option toakka.remote.dot-netty.tcp(defaults tofalsefor backward compatibility) and introduces type-safe validation APIs through the newTlsValidationCallbacksfactory class.
Improvements:
- Improve TLS/SSL certificate error messages during handshake failures - Provides human-readable, actionable error messages for TLS/SSL certificate validation failures with detailed troubleshooting guidance, significantly improving the developer experience when configuring certificate-based authentication.
1 contributor since release 1.5.52
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 2 | 1060 | 77 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.53, click here
Changes:
- dfee7bb Prepare v1.5.53 release
- 4eaf307 Fix TLS hostname validation bug and add configurable validation (#7897) [ #7893 ]
- 8644c59 Improve TLS/SSL certificate error messages during handshake failures (#7891) [ #7890 ]
This list of changes was auto generated.
Akka.NET v1.5.52
1.5.52 October 6th, 2025
SECURITY PATCH
Akka.NET v1.5.52 is a security patch containing crucial fixes for enforcing certificate-based authentication using mTLS enforcement. Please see https://getakka.net/articles/remoting/security.html for details on how this works.
- Akka.Remote: implement mutual TLS authentication support
- Akka.Remote: validate SSL certificate private key access at server startup
Other fixes:
1 contributors since release 1.5.51
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 3 | 1193 | 149 | Aaron Stannard |
To see the full set of changes in Akka.NET v1.5.52, click here
Changes:
- b4fbd5f added v1.5.52 release notes (#7883)
- 5f8e39d
ShardedDaemonSets: randomize starting worker index (#7857) (#7874) - 1a5a82b feat(remote): implement mutual TLS authentication support (#7851) (#7855) [ #538 ]
- 5994efc Fix: Validate SSL certificate private key access at server startup (#7847) (#7848) [ #538 ]
This list of changes was auto generated.
Akka.NET v1.5.51
1.5.51 October 1st, 2025
Akka.NET v1.5.51 is a minor patch containing a remoting bug fix and add required codes to support persistence health check.
2 contributors since release 1.5.50
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 1 | 609 | 31 | Aaron Stannard |
| 1 | 139 | 5 | Gregorius Soedharmo |
To see the full set of changes in Akka.NET v1.5.51, click here
Changes:
- 68dbe75 Update RELEASE_NOTES.md for 1.5.51 release (#7844)
- ba5e5f8 Akka.Persistence HealthChecks (#7842)
- 1ec6f9e Fix TLS handshake error handling (#7839)
This list of changes was auto generated.
Akka.NET v1.5.50
1.5.50 September 22nd, 2025
Akka.NET v1.5.50 is a minor patch containing a bug fix.
1 contributor since release 1.5.49
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 1 | 187 | 1 | Gregorius Soedharmo |
To see the full set of changes in Akka.NET v1.5.50, click here
Changes:
- 94124ba Update RELEASE_NOTES.md for 1.5.50 release (#7837)
- f595a84 Propagate error from DotNetty TLS handshake failure to Akka.Remote (#7824)
This list of changes was auto generated.