Skip to content

Releases: akkadotnet/akka.net

Akka.NET v1.5.57

11 Dec 16:15
5a532c8

Choose a tag to compare

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, and PersistAllAsync methods in Akka.Persistence. Key improvements include:
    • Async Handler Support: All persist methods now support Func<TEvent, Task> handlers for async event processing
    • Completion Callbacks: PersistAll and PersistAllAsync now accept optional completion callbacks (both sync Action and async Func<Task>) that execute after all events are persisted and handled
    • Ordering Guarantees: Completion callbacks use Defer/DeferAsync internally to maintain strict ordering guarantees
    • Zero Breaking Changes: All new APIs are additive overloads

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.PropertyNames and GetProperties() APIs for property extraction
    • SemanticLogMessageFormatter as 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

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

03 Dec 01:40
1.5.57-beta2
9d85bb8

Choose a tag to compare

Pre-release

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, and PersistAllAsync methods in Akka.Persistence. Key improvements include:
    • Async Handler Support: All persist methods now support Func<TEvent, Task> handlers for async event processing
    • Completion Callbacks: PersistAll and PersistAllAsync now accept optional completion callbacks (both sync Action and async Func<Task>) that execute after all events are persisted and handled
    • Ordering Guarantees: Completion callbacks use Defer/DeferAsync internally to maintain strict ordering guarantees
    • Zero Breaking Changes: All new APIs are additive overloads

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.PropertyNames and GetProperties() APIs for property extraction
    • SemanticLogMessageFormatter as 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

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

02 Dec 17:56
e94b4ad

Choose a tag to compare

Pre-release

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.PropertyNames and GetProperties() APIs for property extraction
    • SemanticLogMessageFormatter as 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

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

25 Nov 18:48
1.5.56
dae0a40

Choose a tag to compare

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:

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:

This list of changes was auto generated.

Akka.NET v1.5.55

26 Oct 14:34
1.5.55
2492bdb

Choose a tag to compare

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 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 CertificateValidation factory class. This release adds 7 new validation helper methods including ValidateChain(), ValidateHostname(), PinnedCertificate(), ValidateSubject(), ValidateIssuer(), Combine(), and ChainPlusThen(). 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 DotNettySslSetup settings 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:

This list of changes was auto generated.

Akka.NET v1.5.54

17 Oct 16:26
e7bf0c7

Choose a tag to compare

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:

1 contributor since release 1.5.53

COMMITS LOC+ LOC- AUTHOR
2 159 20 Aaron Stannard

Changes:

This list of changes was auto generated.

Akka.NET v1.5.53

10 Oct 02:32
1.5.53
dfee7bb

Choose a tag to compare

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-hostname configuration option to akka.remote.dot-netty.tcp (defaults to false for backward compatibility) and introduces type-safe validation APIs through the new TlsValidationCallbacks factory class.

Improvements:

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

06 Oct 15:21
1.5.52
b4fbd5f

Choose a tag to compare

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.

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:

This list of changes was auto generated.

Akka.NET v1.5.51

01 Oct 17:08
68dbe75

Choose a tag to compare

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:

This list of changes was auto generated.

Akka.NET v1.5.50

22 Sep 16:49
94124ba

Choose a tag to compare

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.