Releases: akkadotnet/akka.net
Akka.NET v1.5.11
1.5.11 July 27th 2023
Akka.NET v1.5.11 is a maintenance release with a minor API change and internal code modernization/cleanup.
- Remote: Modernize DotNettyTransportSettings class and add support for a SSL Setup class
- PubSub: Make CountSubscriber query command public
If you want to see the full set of changes made in Akka.NET v1.5.11, click here.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
1 | 465 | 321 | Gregorius Soedharmo |
1 | 22 | 2 | Aaron Stannard |
Changes:
- b4f0be3 Update RELEASE_NOTES.md for 1.5.11 release (#6857)
- 28bdef6 DistributedPubSub: make query to count local subscribers for topic public (#6856) [ #3663 ]
- 588d5d6 Modernize AkkaSpec and Akka.Remote DotNetty transport settings (#6854)
This list of changes was auto generated.
Akka.NET v1.5.10
1.5.10 July 26th 2023
Akka.NET v1.5.9 is a maintenance release with a minor API change.
If you want to see the full set of changes made in Akka.NET v1.5.10, click here.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
1 | 70 | 12 | Gregorius Soedharmo |
Changes:
- 12a5434 Update RELEASE_NOTES.md for 1.5.10 release (#6852)
- 745520e Bump Verify.Xunit from 20.4.0 to 20.6.0 (#6848)
- 47a1883 Add constructor with ActorSystemSetup argument to SnapshotStoreSerializationSpec (#6850)
This list of changes was auto generated.
Akka.NET v1.5.9
1.5.9 July 18th 2023
Akka.NET v1.5.9 is a maintenance release that introduces some performance improvements and internal code cleanup/modernization.
Changes:
Improvements:
- Memory optimization, use
Array.Empty
instead of creating empty arrays - Remoting: Log all wrapped message layers during errors
- Port #6805 and #6807, Improve Stream and Pattern.Backoff instance creation time performance
- DData: Harden LWWDictionary serialization null check
Code modernization:
Update dependency versions:
- Bump Google.Protobuf to 3.23.4
- Bump Akka.MultiNode.TestAdapter to 1.5.8
- Bump Microsoft.Data.SQLite to 7.0.9
- Bump Microsoft.Extensions.ObjectPool to 7.0.8
- Bump Xunit to 2.5.0
Akka.TestKit.Xunit Changes
Due to breaking API change in Xunit 2.5.0, updating to Akka.NET 1.5.9 might break your unit tests. Some of the breaking change that we've noticed are:
AkkaEqualException
constructor has been changed due to changes in Xunit API. If you're using this class, please use theAkkaEqualException.ForMismatchedValues()
static method instead of using the constructor.- Testing for exception types by calling async code inside a sync delegate will not unwrap the
AggregateException
thrown. Either use async all the way or manually unwrap the exception. - Xunit
Asset.Equal()
does not automatically check for collection item equality anymore, that means doingAssert.Equal()
between two dictionary or list would not work anymore. - Some Xunit classes have been changed from public to private. If you're using these classes, you will need to refactor your code.
- FsCheck.Xunit: Xunit Roslyn analyzer has become a bit too overzealous and insists that all unit test method can only return either void or Task and will raise a compilation error if you tried to return anything else. If you're using
FsCheck.Xunit
, you will need to use a pragma to disable this check:#pragma warning disable xUnit1028
.
If you want to see the full set of changes made in Akka.NET v1.5.9, click here.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
12 | 171 | 155 | dependabot[bot] |
7 | 466 | 165 | Aaron Stannard |
4 | 1648 | 1725 | Simon Cropp |
1 | 9 | 4 | Gregorius Soedharmo |
1 | 7 | 1 | Michael Buck |
Changes:
- fe9c570 Update RELEASE_NOTES.md for 1.4.9 release (#6840)
- 8580932 made transport adapter components public (#6838)
- 54f4967 Bump XunitVersion from 2.4.2 to 2.5.0 (#6825)
- 15635b5 Harden LWWDictionary serialization null check (#6837)
- 309a495 Bump BenchmarkDotNet from 0.13.2 to 0.13.6 (#6834)
- 020b29c Bump Microsoft.Data.SQLite from 7.0.8 to 7.0.9 (#6835)
- c72855b added req/s reporting for macro-benchmarks (#6829)
- a66295b Bump Google.Protobuf from 3.23.3 to 3.23.4 (#6826)
- 68e0d78 cleaned up ChatClient / ChatServer sample (#6824)
- 608d9e8 Bump FsCheckVersion from 2.16.5 to 2.16.6 (#6823)
See More
- 4d8515d Bump Microsoft.Extensions.ObjectPool from 7.0.5 to 7.0.8 (#6813)
- 52cf479 Added spec to demonstrate failed snapshot-only recovery (#6822)
- 17a9c77 Backport Akka.NET v1.4.51 performance fixes (#6821) [ #6805, #6807 ]
- 819af0f Minor documentation additions. (#6820)
- f43b9b7 Akka.Remote: log all layers of wrapped messages during errors (#6818)
- 613878b Bump Microsoft.NET.Test.Sdk from 17.6.2 to 17.6.3 (#6817)
- b5ac7ef use some compound statements (#6814)
- abae81c Bump Microsoft.Data.SQLite from 7.0.7 to 7.0.8 (#6815)
- 54eed54 use target typed new when type is obvious (#6798)
- 647815d Bump Verify.Xunit from 20.3.2 to 20.4.0 (#6810)
- 731ec92 use Array.Empty (#6801)
- 4e97b5a Bump Akka.MultiNode.TestAdapter from 1.5.6 to 1.5.8 (#6802)
- 6d433e0 remove redundant DefineConstants (#6797)
- 2464c7e Bump Microsoft.Extensions.Hosting.WindowsServices from 7.0.0 to 7.0.1 (#6792)
- e93baea Bump Google.Protobuf from 3.23.2 to 3.23.3 (#6794)
- 2368b0c Placeholder for nightlies (v1.5.8)
- b6d1ce3 added v1.5.8 release notes (#6795)
- 5fa8ef4 Added Source/Flow Setup operator (#6788)
- 74c59c5 Bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.2 (#6785)
- 6de2171 Bump Verify.Xunit from 20.3.0 to 20.3.2 (#6786)
- 4e23091 Bump Microsoft.Data.SQLite from 7.0.5 to 7.0.7 (#6791)
- 2b9c059 Bump NUnit3TestAdapter from 4.4.2 to 4.5.0 (#6779)
- 2873951 docs: fix wrong link syntax in docs/articles/configuration/config.md (#6782)
- e014825 remove some state machine (#6787)
- c3e03a8 Bump Google.Protobuf from 3.23.1 to 3.23.2 (#6777)
- 0efdc87 Bump Verify.Xunit from 20.1.1 to 20.3.0 (#6776)
- c0dc716 Add Cluster.Sharding DData backward compatibility wire format mode (#6775)
- 8d550bf Bump Verify.Xunit from 20.0.0 to 20.1.1 (#6774)
- 0a3d386 Bump Verify.Xunit from 19.14.1 to 20.0.0 (#6771)
- a65b8e8 Bump Google.Protobuf from 3.23.0 to 3.23.1 (#6772)
- ebcc6d2 [Docs] embed "Reliable Akka.NET Message Delivery with Akka.Delivery" video into docs (#6770)
- 1145bc0 Fix MNTR crashing because it is using PolyFill extension method (#6768) [ #6763 ]
- 17e8028 1.5.8 placeholder
- 455d05b use MinBy and MaxBy (#6742)
- c11e5c6 added v1.5.7 release notes (#6767)
- d7304f4 Revert "Make
HandleActorTaskSchedulerMessage
methodprotected virtual
(#6763)" (#6766) - c514fd1 discard some parameters (#6751)
- 88be1fc [CS0618]
GraphInterpreterSpecKit
(#6697) - 1345e58 Make
HandleActorTaskSchedulerMessage
methodprotected virtual
(#6763) - 3e1b8e5 [Docs] Akka.Delivery Documentation (#6757)
- a8aeadf Upgrade Akka.MultiNodeTestRunner to 1.5.6 (#6764)
- 49bc347 Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0 (#6762)
- a3eb0dd Update documentation-guidelines.md
- fe2405d [CS0618][Obsolete] Perserve
CreateProducer
(#6673) - 300780c Bump Polyfill from 1.22.0 to 1.23.0 (#6739)
- d7da8dd Revert DocFX changes (#6738, #6756) (#6759)
- 37cb4c6 [FIX][pre][code] CSS problem (#6756)
- 952d0ff harden ReliableDeliveryShardingSpecs (#6750)
- bf9c1ce Fix:
ProducerControllerImpl
now respects bounds when chunking large messages (#6755) [ #6754 ] - b68ba56 fix some xunit warnings (#6752)
- 4f27bac remove redundant casts via AsInstanceOf (#6744)
- d783933 Fix
ByteString.Copy
when requested length is zero (#6749) [ #6748 ] - 15ab3b1 [fixes] API Tests (#6746)
- 7dbfc94 harden ReliableDeliveryShardingSpecs (#6747)
- c0e4512 Bump Google.Protobuf from 3.22.4 to 3.23.0 (#6745)
- 8d3681d [CS0618]
RepointableActorRef
Warning Disable (#6684) - 66f348a [Doc] Upgrade to
Docfx 2.67.0
(#6738) - 95b6227 remove some redundant type parameters (#6713)
- f7a5977 Update RELEASE_NOTES.md (#6741)
- 96cd8db feature: Akka.Delivery - reliable point-to-point delivery + message chunking (#6720)
- 899e62f...
Akka.NET v1.4.51
1.4.51 June 28th 2023
- Perf: Backoff Supervisor uses Expression based
Props
- Akka.Streams: Do not use expression based props for long lived streams
1.4.50 March 15th 2023
- Query.Sql: Fix PersistenceIdPublisher froze on failure messages
- Akka: Improve DeadLetter log message
- Akka: Fix StackOverflow exception in NewtonsoftJsonSerializer
- Akka.Persistence: Add Persistence.Query support to InMemory journal
- Akka: Fix bugs reported by PVS-Studio static analyzer
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.
- Akka.Actor: Read stash capacity from actor's mailbox or dispatcher configuration
- Akka.Actor: Added support for
UnrestrictedStash
- Akka.Actor: Add API for
UntypedActorWithStash
types - Akka.Actor: set default
PoolRouter.SupervisorStrategy
toRestart
- Akka.Persistence.Sql.Common: FailChunkExecution does not handle
DbExceptions
wrapped in anAggregateException
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.
- Akka.Streams:
ChannelSource<T>
andChannelSink<T>
moved from Alpakka into main project - these stages are now part of the normal Akka.Streams.Dsl. - Akka: make
FutureActorRef<T>
unsealed
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
- Akka.Streams: Fixed
System.NotSupportedException
when disposing stage with materializedIAsyncEnumerable
- Akka.Streams:
ReuseLatest
stage to repeatedly emit the most recent value until a newer one is pushed - Akka.Remote: eliminate
ActorPath.ToSerializationFormat
UID allocations - should provide a noticeable Akka.Remote performance improvement. - Akka.Remote: Remoting and an exception as a payload message -
Exception
types are now serialized properly insideStatus.Failure
messages over the wire.Status.Failure
andStatus.Success
messages are now managed by Protobuf - so you might see some deserialization errors while upgrading if those types are being exchanged over the wire. - Akka.TestKit:
TestActorRef
can not catch exceptions on asynchronous methods
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
- Akka: Upgrade to Newtonsoft.Json 13.0.1 as minimum version
- Akka: Upgrade to System.Configuration.ConfigurationManager 6.0.1 - resolves security issue.
- Akka.IO: Report cause for Akka/IO TCP
CommandFailed
events - Akka.Cluster.Tools: Make sure that
DeadLetter
s published byDistributedPubSubMediator
contain full context of topic - Akka.Cluster.Metrics: Improve CPU/Memory metrics collection at Akka.Cluster.Metrics - built-in metrics are now much more accurate.
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
- remove delegate allocation from
ForkJoinDispatcher
andDedicatedThreadPool
- eliminate
Mailbox
delegate allocations - Reduce
FSM<TState, TData>
allocations - removed boxing allocations inside
FSM.State.Equals
- Eliminate
DefaultLogMessageFormatter
allocations
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
- Akka.Cluster and Akka.Cluster.Sharding: should throw human-friendly exception when accessing cluster / sharding plugins when clustering is not running
- Akka.Cluster.Sharding: Add
HashCodeMessageExtractor
factory - Akka.Persistence.Sql.Common: Fix
DbCommand.CommandTimeout
inBatchingSqlJournal
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...
akka.net v1.5.8
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.
- Akka.Streams: Added
Source
/Flow
Setup
operator - Akka.Cluster.Sharding: fixed potential wire format problem when upgrading from v1.4 to v1.5 with
state-store-mode=ddata
andremember-entities=on
- Akka.Remote.TestKit: Fix MNTR crashing because it is using PolyFill extension method
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 theConsumerController
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 theProducerController
's outbound delivery queue persisted to the Akka.Persistence Journal and SnapshotStore; and - Akka.Cluster.Sharding - contains the definitions for the
ShardingProducerController
andShardingConsumerController
.
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
- TestKit: Remove duplicate info log for unhandled messages
- Core: Change logging DateTime formatter from 12 hour to 24 hour format
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
- TestKit: Add new variant of
ExpectAll
that accepts predicates - FSharp: Downgrade FSharp to v6.0.5
- Core: Bump Google.Protobuf from 3.22.1 to 3.22.3
- Core: Fix ByteString to check for index bounds
- Core: Fix ReceiveActor ReceiveAsync ReceiveTimeout bug
- Core: Fix race condition inside FastLazy
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
- Persistence.Sqlite: Bump Microsoft.Data.SQLite to 7.0.5
- Serialization.Hyperion: Fix bug: surrogate and known type provider not applied correctly by Setup
- Akka: Bump Microsoft.Extensions.ObjectPool to 7.0.5
- Persistence.Sql.Common: Add transaction isolation level to SQL queries
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.
- Akka.Remote: Remove secure cookie from configuration
- DData: Remove unused _pruningPerformed and _tombstonedNodes variables
- Akka.Persistence: Remove default object serializer in Sql.Common
- Akka.Cluster: Log send time in verbose heartbeat message
- Akka.Streams: Optimize ForEachAsync
- Akka: Implement alternative AtomicState leveraging WaitAsync
- Akka.Streams: Use correct capacity when creating DynamicQueue when FixedQueue is full
- Akka.Cluster: Enable keep majority split brain resolver as default
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...
Akka.NET v1.5.7
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 theConsumerController
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 theProducerController
's outbound delivery queue persisted to the Akka.Persistence Journal and SnapshotStore; and - Akka.Cluster.Sharding - contains the definitions for the
ShardingProducerController
andShardingConsumerController
.
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:
- c11e5c6 added v1.5.7 release notes (#6767)
- d7304f4 Revert "Make
HandleActorTaskSchedulerMessage
methodprotected virtual
(#6763)" (#6766) - c514fd1 discard some parameters (#6751)
- 88be1fc [CS0618]
GraphInterpreterSpecKit
(#6697) - 1345e58 Make
HandleActorTaskSchedulerMessage
methodprotected virtual
(#6763) - 3e1b8e5 [Docs] Akka.Delivery Documentation (#6757)
- a8aeadf Upgrade Akka.MultiNodeTestRunner to 1.5.6 (#6764)
- 49bc347 Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0 (#6762)
- a3eb0dd Update documentation-guidelines.md
- fe2405d [CS0618][Obsolete] Perserve
CreateProducer
(#6673)
See More
- 300780c Bump Polyfill from 1.22.0 to 1.23.0 (#6739)
- d7da8dd Revert DocFX changes (#6738, #6756) (#6759)
- 37cb4c6 [FIX][pre][code] CSS problem (#6756)
- 952d0ff harden ReliableDeliveryShardingSpecs (#6750)
- bf9c1ce Fix:
ProducerControllerImpl
now respects bounds when chunking large messages (#6755) [ #6754 ] - b68ba56 fix some xunit warnings (#6752)
- 4f27bac remove redundant casts via AsInstanceOf (#6744)
- d783933 Fix
ByteString.Copy
when requested length is zero (#6749) [ #6748 ] - 15ab3b1 [fixes] API Tests (#6746)
- 7dbfc94 harden ReliableDeliveryShardingSpecs (#6747)
- c0e4512 Bump Google.Protobuf from 3.22.4 to 3.23.0 (#6745)
- 8d3681d [CS0618]
RepointableActorRef
Warning Disable (#6684) - 66f348a [Doc] Upgrade to
Docfx 2.67.0
(#6738) - 95b6227 remove some redundant type parameters (#6713)
- f7a5977 Update RELEASE_NOTES.md (#6741)
- 96cd8db feature: Akka.Delivery - reliable point-to-point delivery + message chunking (#6720)
This list of changes was auto generated.
Akka.NET v1.5.6
1.5.6 May 8th 2023
Version 1.5.6 is a patch with a few minor bug fix
- TestKit: Remove duplicate info log for unhandled messages
- Core: Change logging DateTime formatter from 12 hour to 24 hour format
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:
- 899e62f Update RELEASE_NOTES.md for 1.5.6 release (#6740)
- c402cc7 Update tutorial-3.md (#6737)
- 8ad8d7c Update tutorial-2.md (#6736)
- 8f13c74 remove GetTypeInfo usage (#6727)
- 30fbb2d Change LogEvent time format from 12 to 24 hours (#6734)
- 5c29078 remove TaskExtensions (#6732)
- bf7be78 Update build.fsx
- c48617e build system: increase
dotnet test --blame-hang-timeout
to 2m (#6735) - bc0973c Bump Google.Protobuf from 3.22.3 to 3.22.4 (#6733)
- 89ecc27 Bump Polyfill from 1.21.0 to 1.22.0 (#6731)
See More
This list of changes was auto generated.
Akka.NET v1.5.5
1.5.5 May 4th 2023
- TestKit: Add new variant of
ExpectAll
that accepts predicates - FSharp: Downgrade FSharp to v6.0.5
- Core: Bump Google.Protobuf from 3.22.1 to 3.22.3
- Core: Fix ByteString to check for index bounds
- Core: Fix ReceiveActor ReceiveAsync ReceiveTimeout bug
- Core: Fix race condition inside FastLazy
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:
- 8a26155 Update RELEASE_NOTES.md for v1.5.5 release (#6728)
- f1eba91 [CS0420]
ActorCell
Warning Disable (#6683) - 4b19cd1 [CS0618]
GraphDslCompileSpec
- Warning Disable (#6680) - 502370e [CS0612]
QueryEventsSql
Warning Disable (#6702) - b7ec446 use Directory.Build.props convention (#6724)
- 7d5fb2b use some pattern matching (#6715)
- c2559ff Fix FastLazy race condition and waiting thread hanging (#6336) (#6707)
- 541ffc9 Fix ReceiveAsync resetting ReceiveTimeout (#6718)
- 95000a6 use Polyfill (#6693)
- cb9362a remove an empty finally (#6716)
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 lacksawait
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
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:
- b688e5c Update RELEASE_NOTES.md for 1.5.4 release (#6677)
- 342ea04 [15-74]
FlowInitialDelaySpec
(#6671) - b63df56 [CS0618][IWithboundedStash]Warning disable (#6669)
- 6ea39d3 [19-74]
FlowKillSwitchSpec
(#6563) - f3dddac [14-74]
FlowIdleInjectSpec
(#6558) - 272ea2d [13-74]
FlowGroupedWithinSpec
(#6557) - 1877a0e Akka.Actor: bounded
IStash
programmatic configuration (#6661) [ #6658 ] - f79c26d disable Akka.Streams.Tests.Dsl.HubSpec.MergeHub_must_work_with_long_streams_when_buffer_size_is_1 (#6665)
- fd4860b EventStream deadLetters doc has been improved (#6662) [ #5334 ]
- 7c2ace9 Bump Verify.DiffPlex from 2.2.0 to 2.2.1 (#6663)
See More
- 11420a6 Bump Verify.Xunit from 19.12.3 to 19.13.0 (#6664)
- b3e27a9 [12-74]
FlowFromTaskSpec
(#6556) - 58435a0 [11-74]
FlowForeachSpec
(#6555) - 4642f56 [10-74]
FlowDetacherSpec
(#6554) - 8b6c0ff Akka.Actor:
IStash
API and configuration enhancements (#6660) [ #6658 ] - 61fb874 Fix
IsolationLevel
bugs (#6659) - 2fe0143 Added v1.5.4 placeholder for nightlies
This list of changes was auto generated.
Akka.NET v1.5.3
1.5.3 April 20th 2023
- Persistence.Sqlite: Bump Microsoft.Data.SQLite to 7.0.5
- Serialization.Hyperion: Fix bug: surrogate and known type provider not applied correctly by Setup
- Akka: Bump Microsoft.Extensions.ObjectPool to 7.0.5
- Persistence.Sql.Common: Add transaction isolation level to SQL queries
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:
- 26f52a9 Update RELEASE_NOTES.md for 1.5.3 release (#6656)
- 4537b1c Add SQL query isolation level (#6654)
- f48394e [9-74]
FlowConcatSpec
(#6553) - 5164c8d Bump Microsoft.Extensions.ObjectPool from 7.0.4 to 7.0.5 (#6644)
- 37903d2 Fix Hyperion setting setup code (#6655)
- 2aa497a Bump Verify.Xunit from 19.12.1 to 19.12.3 (#6652)
- 3b76b12 updated all file headers to 2023 (#6649)
- 3828b70 [20-74]
FlowMergeSpec
(#6567) - 220cffb [21-74]
FlowOnCompleteSpec
(#6569) - c1cbb7f [22-74]
FlowPrefixAndTailSpec
(#6570)
See More
- 1a8d495 [24-74]
FlowRecoverWithSpec
(#6572) - addb9fb [17-74]
FlowIteratorSpec
(#6561) - c083fcd [23-74]
FlowRecoverSpec
(#6571) - b1f6e2d [Obsolete] warning disable CS0618 (#6646)
- fdeedb8 Bump Microsoft.Data.SQLite from 7.0.4 to 7.0.5 (#6643)
- beaf727
Akka.FSharp.*fsproj
: warning NU1504: Duplicate 'PackageReference' items found (#6641) - ad49624 WARNING CS0105 (#6645)
- ff52eff [26-74]
FlowSelectAsyncSpec
(#6573) - 3c02d9e [27-74]
FlowSelectAsyncUnorderedSpec
(#6574) - 2dd7d26 [31-74]
FlowSplitAfterSpec
(#6578) - f13062e Bump for 1.5.3 nightlies
- 1ebbb4d [37-74]
FlowWatchTerminationSpec
(#6584) - 2042810 [28-74]
FlowSelectErrorSpec
(#6575) - 6234c39 [29-74]
FlowSkipWhileSpec
(#6576) - 89dc26d Bump Verify.Xunit from 19.12.0 to 19.12.1 (#6637)
- db52ac3 Lock persistence journal table on write (#6639)
- e4ac8fd [33-74]
FlowSumSpec
(#6580) - 7e3befa [32-74]
FlowSplitWhenSpec
(#6579) - fd322e9 [30-74]
FlowSlidingSpec
(#6577) - 0d6ec15 [2-74]
ActorRefSourceSpec
(#6552) - 146929f [38-74]
FlowWhereSpec
(#6585) - 607de41 [47-74]
GraphUnzipSpec
(#6594) - b218c7f Fix in
CS4014
(#6633)
This list of changes was auto generated.