Skip to content

Releases: akkadotnet/akka.net

Akka.NET v1.4.51

28 Jun 17:32
9e9d6ec
Compare
Choose a tag to compare

1.4.51 June 28th 2023

1.4.50 March 15th 2023

COMMITS LOC+ LOC- AUTHOR
6 2402 241 Gregorius Soedharmo

1.4.49 January 26th 2023

Akka.NET v1.4.49 includes some new core Akka.NET APIs and bug fixes to fundamental Akka.Actor behavior.

You can see the full set of tracked issues for Akka.NET v1.4.49 here.

COMMITS LOC+ LOC- AUTHOR
2 711 186 Ismael Hamed
2 41 182 Aaron Stannard

1.4.48 January 5th 2023

Akka.NET v1.4.48 is a minor release that introduces some additional APIs to Akka.NET.

You can see the full set of tracked issues for Akka.NET v1.4.48 here.

COMMITS LOC+ LOC- AUTHOR
3 846 29 Aaron Stannard

1.4.47 December 9th 2022

Akka.NET v1.4.47 is a maintenance patch for Akka.NET v1.4.46 that includes a variety of bug fixes, performance improvements, and new features.

Actor Telemetry

Starting in Akka.NET v1.4.47 local and remotely deployed actors will now emit events when being started, stopped, and restarted:

public interface IActorTelemetryEvent : INoSerializationVerificationNeeded, INotInfluenceReceiveTimeout
{
    /// <summary>
    /// The actor who emitted this event.
    /// </summary>
    IActorRef Subject {get;}
    
    /// <summary>
    /// The implementation type for this actor.
    /// </summary>
    Type ActorType { get; }
}

/// <summary>
/// Event emitted when actor starts.
/// </summary>
public sealed class ActorStarted : IActorTelemetryEvent
{
    public IActorRef Subject { get; }
    public Type ActorType { get; }
}

/// <summary>
/// Event emitted when actor shuts down.
/// </summary>
public sealed class ActorStopped : IActorTelemetryEvent
{
    public IActorRef Subject { get; }
    public Type ActorType { get; }
}

/// <summary>
/// Emitted when an actor restarts.
/// </summary>
public sealed class ActorRestarted : IActorTelemetryEvent
{
    public IActorRef Subject { get; }
    public Type ActorType { get; }
    
    public Exception Reason { get; }
}

These events will be consumed from popular Akka.NET observability and management tools such as Phobos and Petabridge.Cmd to help provide users with more accurate insights into actor workloads over time, but you can also consume these events yourself by subscribing to them via the EventStream:

// subscribe to all actor telemetry events
Context.System.EventStream.Subscribe(Self, typeof(IActorTelemetryEvent));

By default actor telemetry is disabled - to enable it you'll need to turn it on via the following HOCON setting:

akka.actor.telemetry.enabled = on

The performance impact of enabling telemetry is negligible, as you can see via our benchmarks.

Fixes and Updates

You can see the full set of tracked issues for Akka.NET v1.4.47 here.

COMMITS LOC+ LOC- AUTHOR
10 2027 188 Aaron Stannard
1 157 10 Gregorius Soedharmo

1.4.46 November 15th 2022

Akka.NET v1.4.46 is a security patch for Akka.NET v1.4.45 but also includes some other fixes.

Security Advisory: Akka.NET v1.4.45 and earlier depend on an old System.Configuration.ConfigurationManager version 4.7.0 which transitively depends on System.Common.Drawing v4.7.0. The System.Common.Drawing v4.7.0 is affected by a remote code execution vulnerability GHSA-ghhp-997w-qr28.

We have separately created a security advisory for Akka.NET Versions < 1.4.46 and < 1.5.0-alpha3 to track this issue.

Fixes and Updates

You can see the full set of tracked issues for Akka.NET v1.4.46 here.

1.4.45 October 19th 2022

Akka.NET v1.4.45 is a patch release for Akka.NET v1.4 for a bug introduced in v1.4.44.

Patch

1.4.44 October 17th 2022

Akka.NET v1.4.44 is a maintenance release for Akka.NET v1.4 that contains numerous performance improvements in critical areas, including core actor message processing and Akka.Remote.

Performance Fixes

In sum you should expect to see total memory consumption, garbage collection, and throughput improve when you upgrade to Akka.NET v1.4.44.

Other Features and Improvements

You can see the full list of fixes in Akka.NET v1.4.44 here.

COMMITS LOC+ LOC- AUTHOR
10 651 69 @Aaronontheweb
4 275 17 @Arkatufus

1.4.42 September 23 2022

Akka.NET v1.4.42 is a minor release that contains some...

Read more

akka.net v1.5.8

15 Jun 18:59
b6d1ce3
Compare
Choose a tag to compare

1.5.8 June 15th 2023

Akka.NET v1.5.8 is a maintenance release that introduces some new features and fixes some bugs with Akka.NET v1.5.7 and earlier.

If you want to see the full set of changes made in Akka.NET v1.5.8, click here.

COMMITS LOC+ LOC- AUTHOR
9 11 11 dependabot[bot]
2 8 0 Aaron Stannard
2 75 4 Gregorius Soedharmo
2 132 158 Simon Cropp
1 431 1 Ismael Hamed
1 1 1 Andrea Di Stefano

1.5.7 May 17th 2023

Akka.NET v1.5.7 is a significant release that introduces a major new reliable message delivery feature to Akka.NET and Akka.Cluster.Sharding: Akka.Delivery.

Akka.Delivery

Akka.Delivery is a reliable delivery system that leverages built-in actors, serialization, and persistence to help guarantee that all messages sent from one producer to one consumer will be delivered, in-order, even across process restarts / actor restarts / network outages.

Akka.Delivery's functionality is divded across four libraries:

  • Akka - defines the base definitions for all messages, the ProducerController type, and the ConsumerController type;
  • Akka.Cluster - contains the serialization definitions for Akka.Delivery;
  • Akka.Persistence - contains the EventSourcedProducerQueue implementation, an optional feature that can be used to make the ProducerController's outbound delivery queue persisted to the Akka.Persistence Journal and SnapshotStore; and
  • Akka.Cluster.Sharding - contains the definitions for the ShardingProducerController and ShardingConsumerController.

We've documented how these features work in the following two detailed articles official website:

If you want to see the full set of changes made in Akka.NET v1.5.7, click here.

COMMITS LOC+ LOC- AUTHOR
9 13972 135 Aaron Stannard
6 92 88 Ebere Abanonu
4 803 807 Simon Cropp
3 70 53 Gregorius Soedharmo
3 3 3 dependabot[bot]

1.5.6 May 8th 2023

Version 1.5.6 is a patch with a few minor bug fix

If you want to see the full set of changes made in Akka.NET v1.5.6, click here.

COMMITS LOC+ LOC- AUTHOR
2 4 4 Aaron Stannard
2 33 84 Simon Cropp
2 2 2 dependabot[bot]
2 2 2 Richard Smith
1 2 2 Gregorius Soedharmo
1 2 12 Sergey Popov

1.5.5 May 4th 2023

If you want to see the full set of changes made in Akka.NET v1.5.5, click here.

7 contributors since release 1.5.4

COMMITS LOC+ LOC- AUTHOR
16 68 34 Ebere Abanonu
9 598 1053 Simon Cropp
4 4 4 dependabot[bot]
2 229 5 Gregorius Soedharmo
1 33 28 Aaron Stannard
1 256 3 Malcolm Learner
1 148 140 Sergey Popov

1.5.4 April 25th 2023

IStash Enhancements

IStash API have been improved with metrics API and its bound/capacity can be programatically set. Documentation can be read here

If you want to see the full set of changes made in Akka.NET v1.5.4, click here.

5 contributors since release 1.5.3

COMMITS LOC+ LOC- AUTHOR
7 477 486 Ebere Abanonu
4 627 143 Aaron Stannard
2 2 2 dependabot[bot]
1 87 0 Sergey Popov
1 0 1 Gregorius Soedharmo

1.5.3 April 20th 2023

SQL Transaction Isolation Level Setting

In 1.5.3, we're introducing fine-grained control over transaction isolation level inside the Akka.Persistence.Sql.Common common library. This setting will be propagated to the rest of the SQL persistence plugin ecosystem and the Akka.Hosting package in their next release version.

Four new HOCON settings are introduced:

  • akka.persistence.journal.{plugin-name}.read-isolation-level
  • akka.persistence.journal.{plugin-name}.write-isolation-level
  • akka.persistence.snapshot-store.{plugin-name}.read-isolation-level
  • akka.persistence.snapshot-store.{plugin-name}.write-isolation-level

you can go to the official Microsoft documentation to read more about these isolation level settings.

If you want to see the full set of changes made in Akka.NET v1.5.3, click here.

COMMITS LOC+ LOC- AUTHOR
23 1284 1248 Ebere Abanonu
4 7 7 dependabot[bot]
3 933 267 Gregorius Soedharmo
2 4498 4407 Aaron Stannard

1.5.2 April 5th 2023

There are some major behavioral changes introduced to Akka.Cluster and Akka.Persistence in Akka.NET v1.5.2 - to learn how these changes might affect your Akka.NET applications, please see our Akka.NET v1.5.2 Upgrade Advisories on the Akka.NET website.

If you want to see the full set of changes made in Akka.NET v1.5.2, click here.

COMMITS LOC+ LOC- AUTHOR
56 2580 2913 Ebere Abanonu
5 201 82 Aaron Stannard
4 754 558 Ismael Hamed
3 4 4 dependabot[bot]
2 33 12 Sergey Popov
1 511 53 Gregorius Soedharmo
1 1 1 ondravondra
1 0 2 Simon Cropp

1.5.1 March 15th 2023

  • [A...
Read more

Akka.NET v1.5.7

17 May 20:49
c11e5c6
Compare
Choose a tag to compare

1.5.7 May 17th 2023

Akka.NET v1.5.7 is a significant release that introduces a major new reliable message delivery feature to Akka.NET and Akka.Cluster.Sharding: Akka.Delivery.

Akka.Delivery

Akka.Delivery is a reliable delivery system that leverages built-in actors, serialization, and persistence to help guarantee that all messages sent from one producer to one consumer will be delivered, in-order, even across process restarts / actor restarts / network outages.

Akka.Delivery's functionality is divded across four libraries:

  • Akka - defines the base definitions for all messages, the ProducerController type, and the ConsumerController type;
  • Akka.Cluster - contains the serialization definitions for Akka.Delivery;
  • Akka.Persistence - contains the EventSourcedProducerQueue implementation, an optional feature that can be used to make the ProducerController's outbound delivery queue persisted to the Akka.Persistence Journal and SnapshotStore; and
  • Akka.Cluster.Sharding - contains the definitions for the ShardingProducerController and ShardingConsumerController.

We've documented how these features work in the following two detailed articles official website:

If you want to see the full set of changes made in Akka.NET v1.5.7, click here.

COMMITS LOC+ LOC- AUTHOR
9 13972 135 Aaron Stannard
6 92 88 Ebere Abanonu
4 803 807 Simon Cropp
3 70 53 Gregorius Soedharmo
3 3 3 dependabot[bot]

Changes:

See More

This list of changes was auto generated.

Akka.NET v1.5.6

08 May 17:30
899e62f
Compare
Choose a tag to compare

1.5.6 May 8th 2023

Version 1.5.6 is a patch with a few minor bug fix

If you want to see the full set of changes made in Akka.NET v1.5.6, click here.

COMMITS LOC+ LOC- AUTHOR
2 4 4 Aaron Stannard
2 33 84 Simon Cropp
2 2 2 dependabot[bot]
2 2 2 Richard Smith
1 2 2 Gregorius Soedharmo
1 2 12 Sergey Popov

Changes:

See More

This list of changes was auto generated.

Akka.NET v1.5.5

04 May 15:50
8a26155
Compare
Choose a tag to compare

1.5.5 May 4th 2023

If you want to see the full set of changes made in Akka.NET v1.5.5, click here.

7 contributors since release 1.5.4

COMMITS LOC+ LOC- AUTHOR
16 68 34 Ebere Abanonu
9 598 1053 Simon Cropp
4 4 4 dependabot[bot]
2 229 5 Gregorius Soedharmo
1 33 28 Aaron Stannard
1 256 3 Malcolm Learner
1 148 140 Sergey Popov

Changes:

See More
  • be59e3a inline some out variables (#6712)
  • 53333bb simplify TryGetByName (#6711)
  • 90d6349 [CS0618] AbstractStage Warning Disable (#6672)
  • 29b1513 remove some casts (#6710)
  • 24dec7f [CS0618] Serializer Warning Disable (#6703)
  • a1a371d added real bounds checking to ByteString.Slice (#6709)
  • 9676cc1 remove redundant DefineConstants RELEASE (#6695)
  • 48a6054 Bump Verify.Xunit from 19.14.0 to 19.14.1 (#6706)
  • d2a4db3 Bump Verify.Xunit from 19.13.1 to 19.14.0 (#6701)
  • d04a23c [CS0414] AsyncWriteJournal: _continuationOptions value is never used (#6698)
  • faaf9b2 [CS1998] ClusterHeartbeatReceiverSpec This async method lacks await operators (#6699)
  • dcdf45f remove duplicate copyrights (#6696)
  • 7533c92 [CS0168] ShardRegion (#6700)
  • 0bf9082 Bump Google.Protobuf from 3.22.1 to 3.22.3 (#6648)
  • 0f3b42d Bump Verify.Xunit from 19.13.0 to 19.13.1 (#6692)
  • 468f167 [CS0618] StreamRefsSpec Sink.ActorRef<TIn>(IActorRef, object) is obsolete (#6691)
  • 79425f6 [CS0618] ActorRefSinkSpec Sink.ActorRef<TIn>(IActorRef, object) is obsolete (#6690)
  • 331dc1b [Fix][CS0168] RemoteDeploymentDeathWatchSpec - The variable 'ex' never used (#6681)
  • 9b532ac [CS0660][CS0661] TestActorRef Warning Disable (#6686)
  • f55da53 [CS0618][Stage] Warning Disable (#6676)
  • 4b8924d Bump back to FSharp.Core 6.0.5 (#6688)
  • 54259a3 [Fix][CS0169] RemoteReDeploymentSpec - The field _identify is never used (#6682)
  • 0c1120e [DependencyInjection] Stashing actor spec (#6689)
  • 7e1cc7b [Issue #6667] New methods and tests to enable "ExpectAll" with Predicates (#6668)
  • 1f029df [fix][DependencyResolverSetup] Ambiguous reference in cref attribute (#6678)

This list of changes was auto generated.

Akka.NET v1.5.4

25 Apr 15:23
b688e5c
Compare
Choose a tag to compare

1.5.4 April 25th 2023

IStash Enhancements

IStash API have been improved with metrics API and its bound/capacity can be programatically set. Documentation can be read here

If you want to see the full set of changes made in Akka.NET v1.5.4, click here.

5 contributors since release 1.5.3

COMMITS LOC+ LOC- AUTHOR
7 477 486 Ebere Abanonu
4 627 143 Aaron Stannard
2 2 2 dependabot[bot]
1 87 0 Sergey Popov
1 0 1 Gregorius Soedharmo

Changes:

See More

This list of changes was auto generated.

Akka.NET v1.5.3

20 Apr 16:40
26f52a9
Compare
Choose a tag to compare

1.5.3 April 20th 2023

SQL Transaction Isolation Level Setting

In 1.5.3, we're introducing fine-grained control over transaction isolation level inside the Akka.Persistence.Sql.Common common library. This setting will be propagated to the rest of the SQL persistence plugin ecosystem and the Akka.Hosting package in their next release version.

Four new HOCON settings are introduced:

  • akka.persistence.journal.{plugin-name}.read-isolation-level
  • akka.persistence.journal.{plugin-name}.write-isolation-level
  • akka.persistence.snapshot-store.{plugin-name}.read-isolation-level
  • akka.persistence.snapshot-store.{plugin-name}.write-isolation-level

you can go to the official Microsoft documentation to read more about these isolation level settings.

If you want to see the full set of changes made in Akka.NET v1.5.3, click here.

COMMITS LOC+ LOC- AUTHOR
23 1284 1248 Ebere Abanonu
4 7 7 dependabot[bot]
3 933 267 Gregorius Soedharmo
2 4498 4407 Aaron Stannard

Changes:

See More

This list of changes was auto generated.

Akka.NET v1.5.2

06 Apr 13:39
4ffa22a
Compare
Choose a tag to compare

1.5.2 April 5th 2023

There are some major behavioral changes introduced to Akka.Cluster and Akka.Persistence in Akka.NET v1.5.2 - to learn how these changes might affect your Akka.NET applications, please see our Akka.NET v1.5.2 Upgrade Advisories on the Akka.NET website.

If you want to see the full set of changes made in Akka.NET v1.5.2, click here.

COMMITS LOC+ LOC- AUTHOR
56 2580 2913 Ebere Abanonu
5 201 82 Aaron Stannard
4 754 558 Ismael Hamed
3 4 4 dependabot[bot]
2 33 12 Sergey Popov
1 511 53 Gregorius Soedharmo
1 1 1 ondravondra
1 0 2 Simon Cropp

Changes:

See More

This list of changes was auto generated.

Akka.NET v1.5.1

15 Mar 21:49
88c59ca
Compare
Choose a tag to compare

1.5.1 March 15th 2023

If you want to see the full set of changes made in Akka.NET v1.5.1, click here.

COMMITS LOC+ LOC- AUTHOR
9 425 331 Ebere Abanonu
5 6 6 dependabot[bot]
3 2399 109 Sergey Popov
1 97 4 Gregorius Soedharmo
1 2 2 Aaron Stannard

1.5.0 March 2nd 2023

Version 1.5.0 is a major new release of Akka.NET that is now marked as stable and ready for production use.

You can read the full notes about what's changed in Akka.NET v1.5 here. We also encourage you to watch our video: "Akka NET v1.5 New Features and Upgrade Guide"

If you want to see the full set of changes made in Akka.NET v1.5.0 so far, click here.

COMMITS LOC+ LOC- AUTHOR
95 25041 24976 Gregorius Soedharmo
85 89784 18362 Aaron Stannard
76 95 95 dependabot[bot]
18 3201 908 Ismael Hamed
5 230 251 Sergey Popov
2 77 7 Vagif Abilov
2 38 8 Brah McDude
1 92 92 nabond251
1 843 0 Drew
1 7 6 Tjaart Blignaut
1 5 4 Sean Killeen
1 32 1 JonnyII
1 26 4 Thomas Stegemann
1 203 5 Ebere Abanonu
1 2 2 Popov Sergey
1 2 2 Denis
1 16 0 Damian
1 11 2 Nicolai Davies
1 101 3 aminchenkov
1 1 1 zbynek001
1 1 1 Michel van Os
1 1 1 Adrian D. Alvarez

1.5.0-beta5 February 28th 2023

Version 1.5.0-beta5 contains breaking API changes and new API changes for Akka.NET.

COMMITS LOC+ LOC- AUTHOR
2 50 28 Aaron Stannard
1 22 32 Gregorius Soedharmo

1.5.0-beta4 February 28th 2023

Version 1.5.0-beta4 contains breaking API changes and new API changes for Akka.NET.

COMMITS LOC+ LOC- AUTHOR
2 110 37 Aaron Stannard
1 253 7 Gregorius Soedharmo

1.5.0-beta3 February 27th 2023

Version 1.5.0-beta3 contains breaking API changes and new API changes for Akka.NET.

COMMITS LOC+ LOC- AUTHOR
14 68 794 Gregorius Soedharmo
5 997 498 Aaron Stannard
3 6 6 dependabot[bot]

1.5.0-beta2 February 20th 2023

Version 1.5.0-beta2 contains breaking API changes and new API changes for Akka.NET.

COMMITS LOC+ LOC- AUTHOR
8 260 942 Aaron Stannard
5 169 60 Gregorius Soedharmo

1.5.0-beta1 February 20th 2023

Version 1.5.0-beta1 contains breaking API changes and new API changes for Akka.NET.

Breaking Changes: Logging

In #6408 the entire ILoggingAdapter interface was rewritten in order to improve extensibility and performance (logging is now 30-40% faster in all cases and allocates ~50% fewer objects for large format strings).

All of the changes made here are source compatible, but not binary compatible - meaning that users and package authors will need to do the following:

  • Add using Akka.Event in all files that used the ILoggingAdapter and
  • Recompile.

NOTE: you can use a global using Akka.Event directive to do this solution / project-wide if your project supports C# 10 and / or .NET 6.

In addition to improving the performance of the ILoggingAdapter system, we've also made it more extensible - for instance, you can now globally configure the ILogMessageFormatter via the following HOCON:

akka { 
    loglevel=INFO,
    loggers=["Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"]
    logger-formatter="Akka.Logger.Serilog.SerilogLogMessageFormatter, Akka.Logger.Serilog"
}

That will allow users to use the SerilogLogMessageFormatter globally throughout their applications - no more annoying calls like this inside individual actors that want to use semantic logging:

private readonly ILoggingAdapter _logger = Context.GetLogger<SerilogLoggingAdapter>();

Breaking Changes: Akka.Persistence.Sql.Common

This is a breaking change that should effect almost no users, but we deleted some old, bad ideas from the API surface and it might require all Akka.Persistence.Sql* plugins to be recompiled.

For what it's worth, Akka.Persistence.Sql.Common's performance has been improved significantly and we'll continue working on that with some additional API changes this week.

Other Changes and Additions

If you want to see the full set of changes made in Akka.NET v1.5.0 so far, click here.

COMMITS LOC+ LOC- AUTHOR
12 15 15 dependabot[bot]
11 1930 1278 Aaron Stannard
2 143 73 Sergey Popov
1 26 4 Thomas Stegemann
1 1 1 Michel van Os

1.5.0-alpha4 February 1st 2023

Version 1.5.0-alpha3 contains several bug fixes and new features to Akka.NET

Read more

Akka.NET v1.4.50

15 Mar 20:13
8372f75
Compare
Choose a tag to compare

1.4.50 March 15th 2023

COMMITS LOC+ LOC- AUTHOR
6 2402 241 Gregorius Soedharmo

Changes:

  • 8372f75 Update RELEASE_NOTES.md for 1.4.50 release (#6523)
  • 42f9d9d [BACKPORT #6497] Fix of PVS-Studio warnings. (#6521)
  • 3970e40 [BACKPORT #6409] Realization of Persistence Query for InMemory Read Journal (#6520)
  • 5a697ec [BACKPORT #6503] Fix StackOverflow exception when NewtonsoftJsonSerializer tries to deserialize a JObject inside an object field (#6522) [ #6502 ]
  • 3a85e17 Append message content to deadletter log message (#6448) (#6492)
  • a455019 Fix ActorTelemetrySpecs pool router unit test (#6376)
  • 7cee0ed [BACKPORT #6374] Fix PersistenceIdsPublisher hung on failure messages (#6375)
  • 8a2afc2 added v1.4.49 release notes (#6369)
  • ffd9a9e close #6295 - set default PoolRouter SupervisorStrategy to Restart (#6366)
  • 579741d Fixes FailChunkExecution does not handle DbExceptions wrapped in an AggregateException (#6361) (#6364)
See More
Read more