github akkadotnet/akka.net 1.5.62
akka.net v1.5.62

6 hours ago

1.5.62 March 3rd, 2026

Akka.NET v1.5.62 is a maintenance release with an important bug fix for logging stability when using third-party logging providers.

Bug Fixes

1 contributor since release 1.5.61

COMMITS LOC+ LOC- AUTHOR
1 213 35 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.62, click here.

1.5.61 February 26th, 2026

Akka.NET v1.5.61 is a maintenance release with important bug fixes for Akka.Cluster.Sharding, Akka.Cluster, and Akka.Core.

Akka.Cluster.Sharding Bug Fixes

Akka.Cluster Bug Fixes

Bug Fixes

Improvements

4 contributors since release 1.5.60

COMMITS LOC+ LOC- AUTHOR
4 2085 27 Aaron Stannard
5 52 14 Matt Kotsenas
3 151 9 Gregorius Soedharmo
1 2 2 Apoorv Darshan

To see the full set of changes in Akka.NET v1.5.61, click here.

1.5.60 February 9th, 2026

Akka.NET v1.5.60 is a maintenance release with a bug fix and a new feature for structured logging.

Bug Fixes

New Features

  • Add logging context enrichment and scopes - Fixes issue #7535. Adds WithContext() and BeginScope() extension methods to ILoggingAdapter for structured logging context enrichment. Context properties are automatically included in log output and forwarded to downstream logging providers like Serilog and NLog. See documentation.

    var log = Logging.GetLogger(Sys, "example");
    
    // Enrich a logger with additional structured context
    var enrichedLog = log
        .WithContext("Tenant", "foo")
        .WithContext("Partition", 12);
    
    enrichedLog.Info("Processing {Offset}", 42);
    // Output: [INFO][...][akka://sys/user/a][Tenant=foo][Partition=12] Processing 42
    
    // Create a temporary logging scope
    using (var scope = log.BeginScope("RequestId", "REQ-123"))
    {
        scope.Log.Info("Handling request {RequestId}", "REQ-123");
    }
COMMITS LOC+ LOC- AUTHOR
2 581 89 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.60, click here.

1.5.59 January 27th, 2026

Akka.NET v1.5.59 is a maintenance release with critical bug fixes and new features for observability.

Critical Bug Fixes

Bug Fixes

New Features

  • Add ActivityContext capture to LogEvent for trace correlation - Log events now automatically capture the current System.Diagnostics.ActivityContext when created, enabling correlation between Akka.NET logs and distributed traces in observability platforms like OpenTelemetry, Application Insights, and Jaeger.
  • Add BroadcastHub startAfterNrOfConsumers parameter - Fixes issue #8017. Port from Apache Pekko - adds a startAfterNrOfConsumers parameter to BroadcastHub.Sink<T>() that delays broadcasting until the specified number of consumers have subscribed:
    // Wait for 3 consumers before starting to broadcast
    var sink = BroadcastHub.Sink<int>(startAfterNrOfConsumers: 3, bufferSize: 256);

Improvements

To see the full set of changes in Akka.NET v1.5.59, click here.

1.5.58 January 8th, 2026

Akka.NET v1.5.58 is a maintenance release with important bug fixes and performance improvements.

.NET 10 Compatibility Fix

Bug Fixes

Performance Improvements

New Features

6 contributors since release 1.5.57

COMMITS LOC+ LOC- AUTHOR
7 158 36 Aaron Stannard
2 483 55 Gregorius Soedharmo
2 11 41 Rolf Kristensen
1 100 22 Yaroslav Paslavskiy
1 37 53 Jarkko Pöyry
1 11 2 Petri Kero

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:

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

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

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

To see the full set of changes in Akka.NET v1.5.55, click here

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

To see the full set of changes in Akka.NET v1.5.54, click here

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

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

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

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

1.5.49 September 10th, 2025

Akka.NET v1.5.49 is a minor patch containing several bug fixes.

3 contributors since release 1.5.48

COMMITS LOC+ LOC- AUTHOR
18 6011 9343 Aaron Stannard
18 3760 3880 Gregorius Soedharmo
1 1 1 dependabot[bot]

To see the full set of changes in Akka.NET v1.5.49, click here

1.5.48 August 21st, 2025

Akka.NET v1.5.48 is a minor patch containing stability improvement to Akka.TestKit.

2 contributors since release 1.5.47

COMMITS LOC+ LOC- AUTHOR
4 5494 5561 Aaron Stannard
2 204 66 Gregorius Soedharmo

To see the full set of changes in Akka.NET v1.5.48, click here

  • Core: Add ILoggingAdapter context enrichment, explicit scopes, and bracketed context output in StandardOutLogger and Xunit logger

1.5.47 August 12th, 2025

Akka.NET v1.5.47 is a minor patch containing several stability improvements to Akka.TestKit.

4 contributors since release 1.5.46

COMMITS LOC+ LOC- AUTHOR
7 4185 3156 Aaron Stannard
5 352 142 Gregorius Soedharmo
1 2 2 dependabot[bot]
1 13 22 Simon Cropp

To see the full set of changes in Akka.NET v1.5.47, click here

1.5.46 July 17th, 2025

Akka.NET v1.5.46 is a minor patch containing a fix for the Akka.IO.Dns extension.

3 contributors since release 1.5.45

COMMITS LOC+ LOC- AUTHOR
1 4 0 Aaron Stannard
1 1 1 Pavel Anpin
1 1 0 Gregorius Soedharmo

To see the full set of changes in Akka.NET v1.5.46, click here

1.5.45 July 7th, 2025

Akka.NET v1.5.45 is a minor patch containing bug fixes for Core Akka and Akka.Cluster.Sharding plugin.

Supervision Strategy For Sharding Remembered Entities

  • We've added a SupervisorStrategy property to ClusterShardingSettings. You can use any type of SupervisionStrategy, but it is recommended that you inherit ShardSupervisionStrategy if you're making your own custom supervision strategy.
  • Remembered shard entities will now honor SupervisionStrategy decisions and stops remembered entities if the SupervisionStrategy.Decider returned a Directive.Stop or if there is a maximum restart retry limitation.

4 contributors since release 1.5.44

COMMITS LOC+ LOC- AUTHOR
10 823 108 Gregorius Soedharmo
1 7 13 Simon Cropp
1 60 18 ondravondra
1 1 0 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.45, click here

1.5.44 June 19th, 2025

Akka.NET v1.5.44 is a minor patch that contains a bug fix to the Akka.Persistence plugin.

3 contributors since release 1.5.43

COMMITS LOC+ LOC- AUTHOR
10 438 323 Gregorius Soedharmo
2 4 2015 Aaron Stannard
1 47 43 Simon Cropp

To see the full set of changes in Akka.NET v1.5.44, click here.

1.5.43 June 10th, 2025

Akka.NET v1.5.43 contains several bug fixes and also adds new quality of life features.

New Akka.Analyzer Rules

We've added three new Akka.Analyzer rules, AK2003, AK2004, and AK2005. All of them addresses the same Akka anti-pattern where a void async delegate is being passed into the ReceiveActor.Receive<T>() (AK2003), IDslActor.Receive<T>() (AK2004), and ReceivePersistentActor.Command<T>() (AK2005) message handlers.

Here are the documentation for each new rules:

4 contributors since release 1.5.42

COMMITS LOC+ LOC- AUTHOR
7 435 19 Gregorius Soedharmo
2 26 23 Mark Dinh
1 49 136 Simon Cropp
1 4 0 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.43, click here.

Changes:

  • 8223e14 Update RELEASE_NOTES.md for 1.5.62 release (#8074)
  • 958ae1b Update RELEASE_NOTES.md for 1.5.62 release (#8074)
  • 79b8c0d fix: catch FormatException in log message formatters to prevent third-party logger crashes (#8070) (#8073)

This list of changes was auto generated.

Don't miss a new akka.net release

NewReleases is sending notifications on new releases.