Skip to content

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Nov 6, 2025

Updated Akka.Persistence.Hosting from 0.4.3 to 1.5.55.1.

Release notes

Sourced from Akka.Persistence.Hosting's releases.

1.5.55.1

1.5.55.1 October 27th 2025

Enhancements

  • Expose options in journal and snapshot builders - resolved issue #​690 by adding Options property to AkkaPersistenceJournalBuilder and AkkaPersistenceSnapshotBuilder. Extension methods can now access configuration details without requiring options as explicit parameters, eliminating redundant option passing for connectivity health checks and other plugin-specific features

1.5.55 October 26th 2025

New Features

Enhancements

Updates

1.5.55-beta1 October 26th 2025

New Features

Enhancements

Updates

1.5.53 October 14th 2025

Bug Fixes

  • Fix event adapter callback API not invoking adapters at runtime - resolved critical bug where event adapters configured via the callback API were not being invoked at runtime. This fix is especially important for users who have migrated to the callback pattern following the deprecation of JournalOptions.Adapters property. The issue was caused by unnecessary fallback configuration that interfered with adapter registration during HOCON merging.

Updates

1.5.52 October 9th 2025

API Changes

Updates

1.5.51.1 October 2nd 2025

Bug Fixes
... (truncated)

1.5.55

1.5.55 October 26th 2025

New Features

Enhancements

Updates

1.5.55-beta1 October 26th 2025

New Features

Enhancements

Updates

1.5.53 October 14th 2025

Bug Fixes

  • Fix event adapter callback API not invoking adapters at runtime - resolved critical bug where event adapters configured via the callback API were not being invoked at runtime. This fix is especially important for users who have migrated to the callback pattern following the deprecation of JournalOptions.Adapters property. The issue was caused by unnecessary fallback configuration that interfered with adapter registration during HOCON merging.

Updates

1.5.52 October 9th 2025

API Changes

Updates

1.5.51.1 October 2nd 2025

Bug Fixes

1.5.51 October 1st 2025

New Features
... (truncated)

1.5.55-beta1

1.5.55-beta1 October 26th 2025

New Features

Enhancements

Updates

1.5.53

1.5.53 October 14th 2025

Bug Fixes

  • Fix event adapter callback API not invoking adapters at runtime - resolved critical bug where event adapters configured via the callback API were not being invoked at runtime. This fix is especially important for users who have migrated to the callback pattern following the deprecation of JournalOptions.Adapters property. The issue was caused by unnecessary fallback configuration that interfered with adapter registration during HOCON merging.

Updates

1.5.52 October 9th 2025

API Changes

Updates

1.5.51.1 October 2nd 2025

Bug Fixes

1.5.51 October 1st 2025

New Features

Updates

1.5.52

1.5.52 October 9th 2025

API Changes

Updates

1.5.51.1

1.5.51.1 October 2nd 2025

Bug Fixes

1.5.51 October 1st 2025

New Features

Updates

1.5.51

1.5.51 October 1st 2025

New Features

Updates

1.5.50

1.5.50 September 23rd 2025

1.5.49

1.5.49 September 15th 2025

1.5.48.1

1.5.48.1 September 2nd 2025

Introduces new health check functionality and completey replaces Akka.HealthChecks

Problems with Akka.HealthChecks

There are a few major problems with Akka.HealthChecks:

  1. Hair triggers that can inadvertently nuke an otherwise functioning Akka.NET cluster: see Relaxing Akka.Persistence.HealthCheck petabridge/akkadotnet-healthcheck#278 and Rewrite Cluster health checks petabridge/akkadotnet-healthcheck#237 - we have had to do constant firefighting to get these right over the years. The fundamental problem is that Akka.HealthChecks tries to do too much and doesn't give the underlying systems time to recover, resulting in wild swings in availability. The new design approaches these things much more carefully and, generally, tries to use fewer, more meaningful health checks.
  2. Clunky and awkward to configure - you have to configure health checks in three places, you have to install several different NuGet packages, and there are a lot of settings + moving parts involved. A lot of this is legacy baggage from before Microsoft.Extensions.Diagnostics.HealthChecks existed.
  3. Difficult to customize - writing custom health checks with Akka.HealthCheck is... arduous, to say the least.

How This Feature Solves Them

  1. No additional packages - Akka.Hosting now takes a direct dependency on Microsoft.Extensions.Diagnostics.HealthChecks and exposes APIs for configuring Akka.NET-specific health checks that will be registered with the HealthCheckService.
  2. Automatic registration of health checks with HealthCheckService - if you call any of the WithHealthCheck overloads on the AkkaConfigurationBuilder, those types will automatically be registered with the Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService and they will "just work." No additional API calls required - happens automatically.
  3. Automatic health checks for core Akka and Akka.Cluster - we ship with two built in checks out of the box: an ActorSystem liveness check - if it's dead, the check fails. And an Akka.Cluster "have we joined the cluster yet?" readiness check.

These are not enabled by default - you have to opt-in to turning them on.

You can see what the outputs of this look like by running:

dotnet run --project src/Examples/Akka.Hosting.Asp.LoggingDemo/Akka.Hosting.Asp.LoggingDemo.csproj

This will expose the output of both of these healthchecks as pretty-printed JSON at http://localhost:5000/healthz

{
  "status": "Healthy",
  "totalDuration": "00:00:00.0002317",
  "checks": [
    {
      "name": "ActorSystem Available",
      "status": "Healthy",
      "duration": "00:00:00.0000138",
      "description": "ActorSystem is running.",
      "tags": [
        "akka"
      ],
      "data": {}
    },
    {
      "name": "cluster.join",
      "status": "Healthy",
      "duration": "00:00:00.0000248",
      "description": "Successfully joined Akka.NET cluster after [0:00:06.3427821].",
      "tags": [
        "ready",
 ... (truncated)

## 1.5.48

#### 1.5.48 August 22nd 2025 ####

This release does not include the new healthcheck feature introduced in Akka.Hosting 1.5.47-beta1.

* [Bump AkkaVersion from 1.5.46 to 1.5.48](https://github.com/akkadotnet/akka.net/releases/tag/1.5.48)
* [Fix IndexOutOfRangeException bug in ConfigurationHoconAdapter](https://github.com/akkadotnet/Akka.Hosting/pull/632)
* [Fix Akka.Hosting.TestKit deadlock on parallel unit test execution](https://github.com/akkadotnet/Akka.Hosting/pull/643)


## 1.5.47-beta1

#### 1.5.47-beta1 July 24th 2025 ####

Introduces new health check functionality and completey replaces [Akka.HealthChecks](https://github.com/petabridge/akkadotnet-healthcheck)

### Problems with Akka.HealthChecks

There are a few major problems with Akka.HealthChecks:

1. **Hair triggers that can inadvertently nuke an otherwise functioning Akka.NET cluster**: see https://github.com/petabridge/akkadotnet-healthcheck/issues/278 and https://github.com/petabridge/akkadotnet-healthcheck/issues/237 - we have had to do constant firefighting to get these right over the years. The fundamental problem is that Akka.HealthChecks tries to do too much and doesn't give the underlying systems time to recover, resulting in wild swings in availability. The new design approaches these things much more carefully and, generally, tries to use fewer, more meaningful health checks.
2. **Clunky and awkward to configure** - you have to configure health checks in three places, you have to install several different NuGet packages, and there are a lot of settings + moving parts involved. A lot of this is legacy baggage from before Microsoft.Extensions.Diagnostics.HealthChecks existed.
3. **Difficult to customize** - writing custom health checks with Akka.HealthCheck is... arduous, to say the least.

### How This Feature Solves Them

1. **No additional packages** - Akka.Hosting now takes a direct dependency on Microsoft.Extensions.Diagnostics.HealthChecks and exposes APIs for configuring Akka.NET-specific health checks that will be registered with the `HealthCheckService`.
2. **Automatic registration of health checks with `HealthCheckService`** - if you call any of the `WithHealthCheck` overloads on the `AkkaConfigurationBuilder`, those types will automatically be registered with the `Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService` and they will "just work." No additional API calls required - happens automatically.
3. **Automatic health checks for core Akka and Akka.Cluster** - we ship with two built in checks out of the box: an `ActorSystem` liveness check - if it's dead, the check fails. And an Akka.Cluster "have we joined the cluster yet?" readiness check. 

**These are not enabled by default - you have to opt-in to turning them on.**

You can see what the outputs of this look like by running:

```shell
dotnet run --project src/Examples/Akka.Hosting.Asp.LoggingDemo/Akka.Hosting.Asp.LoggingDemo.csproj

This will expose the output of both of these healthchecks as pretty-printed JSON at http://localhost:5000/healthz

{
  "status": "Healthy",
  "totalDuration": "00:00:00.0002317",
  "checks": [
    {
      "name": "ActorSystem Available",
      "status": "Healthy",
      "duration": "00:00:00.0000138",
      "description": "ActorSystem is running.",
      "tags": [
        "akka"
      ],
      "data": {}
    },
    {
      "name": "cluster.join",
      "status": "Healthy",
      "duration": "00:00:00.0000248",
      "description": "Successfully joined Akka.NET cluster after [0:00:06.3427821].",
      "tags": [
        "ready",
 ... (truncated)

## 1.5.46

#### 1.5.46 July 17th 2025 ####

* [Bump AkkaVersion from 1.5.45 to 1.5.46](https://github.com/akkadotnet/akka.net/releases/tag/1.5.46)


## 1.5.45

#### 1.5.45 July 7th 2025 ####

* [Bump AkkaVersion from 1.5.44 to 1.5.45](https://github.com/akkadotnet/akka.net/releases/tag/1.5.45)


## 1.5.44

#### 1.5.44 June 23rd 2025 ####

* [Bump AkkaVersion from 1.5.40 to 1.5.44](https://github.com/akkadotnet/akka.net/releases/tag/1.5.44)
* [Add persistence testkit support](https://github.com/akkadotnet/Akka.Hosting/pull/610)


## 1.5.42

#### 1.5.42 May 21st 2025 ####

* [Bump AkkaVersion from 1.5.40 to 1.5.42](https://github.com/akkadotnet/akka.net/releases/tag/1.5.42)
* [Fix `.WithDistributedData()` to start `DistributedDataProvider` automatically](https://github.com/akkadotnet/Akka.Hosting/pull/597)


## 1.5.40

#### 1.5.40 March 24th 2025 ####

* [Bump AkkaVersion from 1.5.39 to 1.5.40](https://github.com/akkadotnet/akka.net/releases/tag/1.5.40)


## 1.5.39

#### 1.5.39 March 17th 2025 ####

* [Bump AkkaVersion from 1.5.38 to 1.5.39](https://github.com/akkadotnet/akka.net/releases/tag/1.5.39)


## 1.5.38

#### 1.5.38 February 17th 2025 ####

* [Bump AkkaVersion from 1.5.37 to 1.5.38](https://github.com/akkadotnet/akka.net/releases/tag/1.5.38)


## 1.5.37.2

#### 1.5.37.2 February 5th 2024 ####

* [Akka.Hosting.TestKit: Fixed issue with `xUnitLogger` throwing `NotImplementedException` when used with scoped logging](https://github.com/akkadotnet/Akka.Hosting/pull/570).


## 1.5.37.1

#### 1.5.37 January 23rd 2025 ####

Moving all of our BCL dependencies to 8.0 created issues for our .NET 6-9 users when adopting Akka.NET packages that only targeted .NET Standard, so for the time being we're normalizing everything back to 6.0

* [Bump Akka.NET to 1.5.37](https://github.com/akkadotnet/akka.net/releases/tag/1.5.37)


## 1.5.37

#### 1.5.37 January 23rd 2025 ####

Moving all of our BCL dependencies to 8.0 created issues for our .NET 6-9 users when adopting Akka.NET packages that only targeted .NET Standard, so for the time being we're normalizing everything back to 6.0

* [Bump Akka.NET to 1.5.37](https://github.com/akkadotnet/akka.net/releases/tag/1.5.37)


## 1.5.36

#### 1.5.36 January 22nd 2025 ####

* [Bump Akka.NET to 1.5.36](https://github.com/akkadotnet/akka.net/releases/tag/1.5.36)


## 1.5.35

#### 1.5.35 January 13th 2025 ####

* [Bump Akka.NET to 1.5.35](https://github.com/akkadotnet/akka.net/releases/tag/1.5.35)
* [Bump Microsoft.Extensions.* packages to 8.0.X](https://github.com/akkadotnet/Akka.Hosting/pull/553)
* [Bump Microsoft.Bcl.AsyncInterfaces to 8.0.X](https://github.com/akkadotnet/Akka.Hosting/pull/553)
* [Bump System.Text.Json to 8.0.X](https://github.com/akkadotnet/Akka.Hosting/pull/553)


## 1.5.34

#### 1.5.34 January 7th 2025 ####

* [Bump Akka.NET to 1.5.34](https://github.com/akkadotnet/akka.net/releases/tag/1.5.34)


## 1.5.33

#### 1.5.33 December 24th 2024 ####

* [Bump Akka.NET to 1.5.33](https://github.com/akkadotnet/akka.net/releases/tag/1.5.33)
* Resolved `nullability` issues with Akka.Hosting.TestKit APIs

## 1.5.32

#### 1.5.32 December 4th 2024 ####

* [Bump Akka.NET to 1.5.32](https://github.com/akkadotnet/akka.net/releases/tag/1.5.32)
* [Cluster: Add global scoped DData setting extension method](https://github.com/akkadotnet/Akka.Hosting/pull/527)
* [Core: Fix CVE-2024-43485](https://github.com/akkadotnet/Akka.Hosting/pull/529)


## 1.5.31.1

#### 1.5.31.1 November 15th 2024 ####

* [Cluster: Fix `WithSingleton` and `WithSingletonProxy` API](https://github.com/akkadotnet/Akka.Hosting/pull/520)
* [Cluster: Fix `WithShardedDaemonProcess` throws `NullReferenceException`](https://github.com/akkadotnet/Akka.Hosting/pull/522)


## 1.5.31

#### 1.5.31 November 11th 2024 ####

* [Bump AkkaVersion from 1.5.30 to 1.5.31](https://github.com/akkadotnet/Akka.Hosting/pull/517)


## 1.5.30.1

• [Fix ActorRegistry.GetAsync() returning Nobody](https://github.com/akkadotnet/Akka.Hosting/pull/501)

## 1.5.30

• [Update Akka.NET to 1.5.30](https://github.com/akkadotnet/akka.net/releases/tag/1.5.30)
• [Make sure that any exceptions thrown during start-up are logged and stops the application](https://github.com/akkadotnet/Akka.Hosting/pull/494)

## 1.5.29

• [Update Akka.NET to 1.5.29](https://github.com/akkadotnet/akka.net/releases/tag/1.5.29)
• [Make sure that any exceptions thrown during start-up are logged and stops the application](https://github.com/akkadotnet/Akka.Hosting/pull/494)

## 1.5.28

• [Update Akka.NET to 1.5.28](https://github.com/akkadotnet/akka.net/releases/tag/1.5.29)
• [Include Akka.Streams configuration by default](https://github.com/akkadotnet/Akka.Hosting/pull/489)

## 1.5.27

• [Update Akka.NET to 1.5.27.1](https://github.com/akkadotnet/akka.net/releases/tag/1.5.27.1)
• [Fix only the last ShardOptions were applied](https://github.com/akkadotnet/Akka.Hosting/pull/480)
• [Add ClusterClientDiscovery support](https://github.com/akkadotnet/Akka.Hosting/pull/478)
> [!Note]
> 
> We added support for cluster client initial contact discovery feature in this feature.
> To use this feature you will need to use Akka.Management v1.5.27 or higher.

## 1.5.25

• [Update Akka.NET to 1.5.25](https://github.com/akkadotnet/akka.net/releases/tag/1.5.25)%2C which resolves a critical bug: [Akka.Logging: v1.5.21 appears to have truncated log source%2C timestamps%2C etc from all log messages ](https://github.com/akkadotnet/akka.net/issues/7255)

## 1.5.24

• [Update Akka.NET to 1.5.24](https://github.com/akkadotnet/akka.net/releases/tag/1.5.24)
• [Add ShardedDaemonProcess integration](https://github.com/akkadotnet/Akka.Hosting/pull/463)
You can now start ShardedDaemonProcess host and proxy using Akka.Hosting through 2 new _Akka.Cluster.Hosting_ extension methods

```csharp
public static AkkaConfigurationBuilder WithShardedDaemonProcess<TKey>(
   this AkkaConfigurationBuilder builder,
   string name,
   int numberOfInstances,
   Func<ActorSystem, IActorRegistry, IDependencyResolver, Func<int, Props>> entityPropsFactory,
   ClusterDaemonOptions? options = null)
public static AkkaConfigurationBuilder WithShardedDaemonProcessProxy<TKey>(
   this AkkaConfigurationBuilder builder,
   string name,
   int numberOfInstances,
   string role)

1.5.22

Update Akka.NET to 1.5.22
Add log filtering extension method
Filtering Logs In Akka.NET
In Akka.NET 1.5.21%2C we introduced log filtering for log messages based on the LogSource or the content of a log message. Depending on your coding style%2C you can use this feature in Akka.Hosting in several ways.

  1. Using The LoggerConfigBuilder.WithLogFilter() method.

The LoggerConfigBuilder.WithLogFilter() method lets you set up the LogFilterBuilder

   builder.Services.AddAkka("MyActorSystem"%2C configurationBuilder =>
   {
       configurationBuilder
           .ConfigureLoggers(loggerConfigBuilder =>
           {
               loggerConfigBuilder.WithLogFilter(filterBuilder =>
               {
                   filterBuilder.ExcludeMessageContaining("Test")%3B
               })
           }
   })
  1. Setting the loggerConfigBuilder.LogFilterBuilder property directly.
   builder.Services.AddAkka("MyActorSystem"%2C configurationBuilder =>
   {
       configurationBuilder
           .ConfigureLoggers(loggerConfigBuilder =>
           {
               loggerConfigBuilder.LogFilterBuilder = new LogFilterBuilder()%3B
               loggerConfigBuilder.LogFilterBuilder.ExcludeMessageContaining("Test")%3B
           })
   })

1.5.20

Update Akka.NET to 1.5.20
• Added improved APIs for setting default ILogMessageFormatters • the LoggerConfigBuilder.WithDefaultLogMessageFormatter method.

1.5.19

Update Akka.NET to 1.5.19

1.5.18

Update Akka.NET to 1.5.18

1.5.17.1

Update Akka.NET to 1.5.17.1

1.5.16

Update Akka.NET to 1.5.16

1.5.15

Update Akka.NET to 1.5.15
• Marked all Akka.Cluster.Hosting methods that accept deprecated sharding delegates as Obsolete

1.5.14

Update Akka.NET to 1.5.14
Akka.Cluster.Hosting: don't use sharding delegates
Akka.Hosting.TestKit: Add method to configure IHostBuilder

1.5.13

Update Akka.NET to 1.5.13

1.5.12.1

Add IConfiguration to HOCON adapter key name normalization toggle flag
Expand Cluster.Hosting and Remote.Hosting options
You can now specify whether IConfiguration key strings should be normalized to lower case or not when they are being converted into HOCON keys. You can read the documentation here

1.5.12

Update Akka.NET to 1.5.12
TestKit: Fix missing actor context on test start
Remote: Add SSL settings into RemoteOptions

1.5.8.1

[Akka.Cluster.Hosting] Fix missing ClusterClient default HOCON configuration

1.5.8

Update Akka.NET to 1.5.8
[Akka.Cluster.Hosting] PassivateEntityAfter should not override HOCON settings
[Akka.Hosting] Set application exit code to -1 if CoordinatedShutdown was caused by cluster down or leave

1.5.7

Update Akka.NET to 1.5.7

1.5.6.1

Akka.Hosting now throws PlatformNotSupportedException when attempting to run on Maui due to dotnet/maui#2244. Maui support will be added in https://github.com/akkadotnet/Akka.Hosting.Maui
make AkkaHostedService public • virtual so it can be extended and customized • advanced feature.

1.5.6

Update Akka.NET to 1.5.6

1.5.5

Update Akka.NET to 1.5.5

1.5.4.1

Add ShardOptions.PassivateIdleEntityAfter option property

1.5.4

Update Akka.NET to 1.5.4
• Update Akka.Persistence.SqlServer to 1.5.4
• Update Akka.Persistence.PostgreSql to 1.5.4

1.5.3

Update Akka.NET to 1.5.3
Add SQL transaction isolation level support
SQL Transaction Isolation Level Setting
In 1.5.3%2C we're introducing fine-grained control over transaction isolation level inside the Akka.Persistence.Hosting%2C Akka.Persistence.SqlServer.Hosting%2C and Akka.Persistence.PostgreSql.Hosting plugins.
you can go to the official Microsoft documentation to read more about these isolation level settings.

1.5.2

Update Akka.NET to 1.5.2
Bump Akka.Persistence.PostgreSql to 1.5.2
Bump Akka.Persistence.SqlServer to 1.5.2
Persistence: Change persistence default serializer from json to null
Major Changes
• Persistence.Hosting default value for default serializer has been changed from json to null. This only affects persistence write and not reads. All objects with no serializer mapping will now be serialized using Akka default object serializer. If you have old persistence data where they do not have their serializer ID column populated%2C you will need to change this setting.
Inherited Changes From Akka.NET Core
• Persistence will now ignore the serializer setting inside journal settings when writing new events. This setting will only be used when data retrieved from the database does not have the serializer id column unpopulated.
• Cluster.Hosting%2C by default%2C will have SplitBrainResolver enabled.

1.5.1.1

Fix missing default DData configuration in cluster hosting extension

1.5.1

Update Akka.NET to 1.5.1
Bump Akka.Persistence.PostgreSql to 1.5.1
Bump Akka.Persistence.SqlServer to 1.5.1
Add GetAsync method to IRequiredActor to resolve IActorRef in background services
Add cluster Distributed Data options support for Akka.Cluster.Hosting extensions

1.5.0

Version 1.5.0 is the RTM release of Akka.Hosting and Akka.NET v1.5.0 RTM integration.
Full changes
Update Akka.NET to 1.5.0
Fix missing cluster configuration on certain edge cases
Add new Cluster.Sharding RememberEntitiesStore
Add Cluster.Sharding journal migration adapter convenience method
Add LogMessageFormatter formatter support to logging

Upgrading From v1.4 To v1.5

As noted in the upgrade advisories%2C there was some major changes inside Akka.NET that directly affects Akka.Hosting. To upgrade from v1.4 to v1.5%2C please watch our video here covering this process.

1.5.0-beta6

Update Akka.NET to 1.5.0-beta6

1.5.0-beta4

Version 1.5.0-beta4 integrates Akka.NET v1.5 into Akka.Hosting
Update Akka.NET to 1.5.0-beta4

Upgrading From v1.4 To v1.5

As noted in the upgrade advisories%2C there was a major change in Akka.Cluster.Sharding state storage. These notes contains the same documentation%2C but tailored for Akka.Hosting users
The recommended settings for maximum ease-of-use for Akka.Cluster.Sharding in new applications going forward will be:

var options = new ShardOptions
{
    StateStoreMode = StateStoreMode.DData%2C
    RememberEntitiesStore = RememberEntitiesStore.Eventsourced
}

You will need to set these options manually because the default settings are set for backward compatibility.

Migrating to New Sharding Storage From Akka.Persistence

NOTE

This section applies only to users who were using StateStoreMode = StateStoreMode.Persistence.
Switching over to using RememberEntitiesStore = RememberEntitiesStore.Eventsourced will cause an initial migration of data from the ShardCoordinator's journal into separate event journals going forward.
Upgrading to Akka.NET v1.5 will *cause an irreversible migration of Akka.Cluster.Sharding data• for users who were previously running StateStoreMode = StateStoreMode.Persistence%2C so follow the steps below carefully:

Step 1 • Upgrade to Akka.NET v1.5 With New Options Setup

Update your Akka.Cluster.Sharding options to look like the following (adjust as necessary for your custom settings):

hostBuilder.Services.AddAkka("MyActorSystem"%2C builder =>
{
    var shardOptions = new ShardOptions
    {
        // If you don't run Akka.Cluster.Sharding with RememberEntities = true%2C
        // then set this to false
        RememberEntities = true%2C
        RememberEntitiesStore = RememberEntitiesStore.Eventsourced%2C
        StateStoreMode = StateStoreMode.Persistence%2C
        //fail if upgrade doesn't succeed
        FailOnInvalidEntityStateTransition = true
    }
    // Modify these two options to suit your application%2C SqlServer used
    // only as an illustration
    var journalOptions = new SqlServerJournalOptions()%3B
    var snapshotOptions = new SqlServerSnapshotOptions()%3B
    builder
        .WithClustering()
        .WithSqlServerPersistence(journalOptions%2C snapshotOptions)
        .WithShardRegion<UserActionsEntity>(
            "userActions"%2C 
 ... (truncated)

## 1.5.0-beta3

Version 1.5.0-beta3 integrates Akka.NET v1.5 into Akka.Hosting
• [Update Akka.NET to 1.5.0-beta3](https://github.com/akkadotnet/akka.net/releases/tag/1.5.0-beta3)
#### Upgrading From v1.4 To v1.5
As noted in [the upgrade advisories](https://github.com/akkadotnet/akka.net/blob/c9ccc25207b5a4cfa963a5a23f96c0676fbbef10/docs/community/whats-new/akkadotnet-v1.5-upgrade-advisories.md)%2C there was a major change in Akka.Cluster.Sharding state storage. These notes contains the same documentation%2C but tailored for Akka.Hosting users
The recommended settings for maximum ease-of-use for Akka.Cluster.Sharding in new applications going forward will be:
csharp
var options = new ShardOptions
{
    StateStoreMode = StateStoreMode.DData%2C
    RememberEntitiesStore = RememberEntitiesStore.Eventsourced
}%3B

You will need to set these options manually because the default settings are set for backward compatibility.
#### Migrating to New Sharding Storage From Akka.Persistence
> **NOTE**
> 
> This section applies only to users who were using StateStoreMode = StateStoreMode.Persistence.
Switching over to using RememberEntitiesStore = RememberEntitiesStore.Eventsourced will cause an initial migration of data from the ShardCoordinator's journal into separate event journals going forward.
Upgrading to Akka.NET v1.5 will **cause an irreversible migration of Akka.Cluster.Sharding data*for users who were previously running StateStoreMode = StateStoreMode.Persistence%2C so follow the steps below carefully:
##### Step 1 • Upgrade to Akka.NET v1.5 With New Options Setup
Update your Akka.Cluster.Sharding options to look like the following (adjust as necessary for your custom settings):
csharp
hostBuilder.Services.AddAkka("MyActorSystem"%2C builder =>
{
    var shardOptions = new ShardOptions
    {
        // If you don't run Akka.Cluster.Sharding with RememberEntities = true%2C
        // then set this to false
        RememberEntities = true%2C
        RememberEntitiesStore = RememberEntitiesStore.Eventsourced%2C
        StateStoreMode = StateStoreMode.Persistence%2C
        //fail if upgrade doesn't succeed
        FailOnInvalidEntityStateTransition = true
    }%3B
    // Modify these two options to suit your application%2C SqlServer used
    // only as an illustration
    var journalOptions = new SqlServerJournalOptions()%3B
    var snapshotOptions = new SqlServerSnapshotOptions()%3B
    builder
        .WithClustering()
        .WithSqlServerPersistence(journalOptions%2C snapshotOptions)
        .WithShardRegion<UserActionsEntity>(
            "userActions"%2C 
            s => UserActionsEntity.Props(s)%2C
            new UserMessageExtractor()%2C
            // shardOptions is being used here
            shardOptions)%3B
    // Add the Akka.Cluster.Sharding migration journal event adapter
    builder.WithClusterShardingJournalMigrationAdapter(journalOptions)%3B
    // you can also declare the adapter by referencing the journal ID directly
 ... (truncated)

## 1.5.0-alpha4

## [1.5.0-alpha4] / 17 February 2023

Version 1.5.0-alpha4 integrates Akka.NET v1.5 into Akka.Hosting

* [Implement new cluster sharding options](https://github.com/akkadotnet/Akka.Hosting/pull/224)
* [Add cluster sharding migration journal event adapter extension method](https://github.com/akkadotnet/Akka.Hosting/pull/226)
* [Update Akka.NET to 1.5.0-alpha4](https://github.com/akkadotnet/akka.net/releases/tag/1.5.0-alpha4)

#### Upgrading From v1.4 To v1.5
As noted in [the upgrade advisories](https://github.com/akkadotnet/akka.net/blob/c9ccc25207b5a4cfa963a5a23f96c0676fbbef10/docs/community/whats-new/akkadotnet-v1.5-upgrade-advisories.md), there was a major change in Akka.Cluster.Sharding state storage. These notes contains the same documentation, but tailored for `Akka.Hosting` users

The recommended settings for maximum ease-of-use for Akka.Cluster.Sharding in new applications going forward will be:

```csharp
var options = new ShardOptions
{
    StateStoreMode = StateStoreMode.DData,
    RememberEntitiesStore = RememberEntitiesStore.Eventsourced
};
```

You will need to set these options manually because the default settings are set for backward compatibility.

#### Migrating to New Sharding Storage From Akka.Persistence

> **NOTE**
> 
> This section applies only to users who were using `StateStoreMode = StateStoreMode.Persistence`.

Switching over to using `RememberEntitiesStore = RememberEntitiesStore.Eventsourced` will cause an initial migration of data from the `ShardCoordinator`'s journal into separate event journals going forward.

Upgrading to Akka.NET v1.5 will **cause an irreversible migration of Akka.Cluster.Sharding data** for users who were previously running `StateStoreMode = StateStoreMode.Persistence`, so follow the steps below carefully:

##### Step 1 - Upgrade to Akka.NET v1.5 With New Options Setup

Update your Akka.Cluster.Sharding options to look like the following (adjust as necessary for your custom settings):

```csharp
hostBuilder.Services.AddAkka("MyActorSystem", builder =>
{
    var shardOptions = new ShardOptions
    {
        // If you don't run Akka.Cluster.Sharding with `RememberEntities = true`,
        // then set this to false
        RememberEntities = true,
        RememberEntitiesStore = RememberEntitiesStore.Eventsourced,
        StateStoreMode = StateStoreMode.Persistence,
    
        //fail if upgrade doesn't succeed
        FailOnInvalidEntityStateTransition = true
 ... (truncated)

## 1.0.3[Update Akka.NET from 1.4.45 to 1.4.46](https://github.com/akkadotnet/akka.net/releases/tag/1.4.46)[Remove default HoconAddMode value from AddHocon and AddHoconFile](https://github.com/akkadotnet/Akka.Hosting/pull/135)[First release of Akka.Hosting.TestKit NuGet package](https://github.com/akkadotnet/Akka.Hosting/pull/143)

## 1.0.2

Version 1.0.2 introduces a new method to the `ActorRegistry.GetAsync` in order to allow users to force parts of their application to wait until a specific `IActorRef` has been started and added to the `ActorRegistry`.

```csharp
// arrange
var registry = new ActorRegistry();

// act
var task = registry.GetAsync<Nobody>();
task.IsCompletedSuccessfully.Should().BeFalse();

registry.Register<Nobody>(Nobody.Instance);
var result = await task;

// assert
result.Should().Be(Nobody.Instance);
```

This method is designed to allow users to wait via `async Task<IActorRef>` for an actor to be registered in the event that a specific `IRequiredActor<TKey>` is needed before Akka.Hosting can start the `ActorSystem` inside its `IHostedService`.


## 1.0.1

Version 1.0.1 fixes options bug used in the cluster sharding Akka.Hosting extension method.

* [Update Akka.NET from 1.4.45 to 1.4.48](https://github.com/akkadotnet/akka.net/releases/tag/1.4.48)
* [Fix SimpleDemo project failing on `Development` environment](https://github.com/akkadotnet/Akka.Hosting/pull/184)
* [Add F# CustomJournalIdDemo project](https://github.com/akkadotnet/Akka.Hosting/pull/183)
* [Fix cluster sharding hosting extension method options bug](https://github.com/akkadotnet/Akka.Hosting/pull/186)

## 1.0.0

## [1.0.0] / 27 December 2022

This 1.0.0 release is the RTM release for `Akka.Hosting` and contains major API breaking changes with a lot of its API. All current API will be frozen for all future releases and will be backed with our backward compatibility promise.

**Change List**
* [Update Akka.NET from 1.4.45 to 1.4.47](https://github.com/akkadotnet/akka.net/releases/tag/1.4.47)
* [The `HoconAddMode` argument in `AddHocon()` and `AddHoconFile()` extension methods are not optional anymore](https://github.com/akkadotnet/Akka.Hosting/pull/135)
* [`ActorRegistry.Get&lt;T&gt;` will throw if no actor with key T has been registered with the `ActorRegistry`](https://github.com/akkadotnet/Akka.Hosting/pull/147)
* [Modularize and make Hosting.Persistence methods use the options pattern](https://github.com/akkadotnet/Akka.Hosting/pull/146)
* [Add lease support to singleton and sharding extensions](https://github.com/akkadotnet/Akka.Hosting/pull/150)
* [Fix bug in `AddActor` and `AddStartup` to make sure that they're executed in order](https://github.com/akkadotnet/Akka.Hosting/pull/155)
* [Add IConfiguration to HOCON adapter](https://github.com/akkadotnet/Akka.Hosting/pull/158)
* [Make `JournalOptions` and `SnapshotOptions` IConfigurable bindable](https://github.com/akkadotnet/Akka.Hosting/pull/161)
* [Make `RemoteOptions` IConfiguration bindable](https://github.com/akkadotnet/Akka.Hosting/pull/160)
* [Better integration with Akka.DependencyInjection](https://github.com/akkadotnet/Akka.Hosting/pull/169)
* [Add `WithActorAskTimeout` and extends debug logging options](https://github.com/akkadotnet/Akka.Hosting/pull/173)
* Updated NuGet package versions:
  * [Bump Akka.Persistence.PostgreSql from 1.4.45 to 1.4.46](https://github.com/akkadotnet/Akka.Hosting/pull/148)

**General Changes**

* Almost all options properties are changed to value types to allow direct binding to `Miscosoft.Extensions.Configuration` `IConfiguration` instance.
* Implements `Nullable` on all projects.

**Changes To `Akka.Hosting`**

* The `HoconAddMode` argument in `AddHocon()` and `AddHoconFile()` extension methods are not optional anymore; you will need to declare that your HOCON will to append, prepend, or replace existing HOCON configuration. In almost all cases, unless you're adding a default configuration, you only need to use `HoconAddMode.Prepend`.

* `ActorRegistry.Get&lt;T&gt;` will now throw an `ActorRegistryException` if no actor with key T has been registered with the `ActorRegistry`, this is done to make the API more consistent with all other .NET APIs. Use `ActorRegistry.TryGet&lt;T&gt;` if you do not want this behavior.

* Better integration with `Akka.DependencyInjection`. Documentation can be read [here](https://github.com/akkadotnet/Akka.Hosting/blob/dev/README.md#dependency-injection-outside-and-inside-akkanet)

* Added `WithActorAskTimeout()` extension method to configure the actor ask timeout settings.

* Added extended debug logging support for dead letters and actor messages and events.

* Adds a variation to `AddHocon` that can convert `Microsoft.Extensions.Configuration` `IConfiguration` into HOCON `Config` instance and adds it to the ActorSystem being configured.
  * All variable name are automatically converted to lower case.
  * All "." (period) in the `IConfiguration` key will be treated as a HOCON object key separator
  * For environment variable configuration provider:
    * "__" (double underline) will be converted to "." (period).
    * "_" (single underline) will be converted to "-" (dash).
    * If all keys are composed of integer parseable keys, the whole object is treated as an array
    
  Example:
  
  JSON configuration:
  ```json
  {
     "akka.cluster": {
 ... (truncated)

## 0.5.2-beta1[Update Akka.NET from 1.4.45 to 1.4.46](https://github.com/akkadotnet/akka.net/releases/tag/1.4.46)[Remove default HoconAddMode value from AddHocon and AddHoconFile](https://github.com/akkadotnet/Akka.Hosting/pull/135)[First release of Akka.Hosting.TestKit NuGet package](https://github.com/akkadotnet/Akka.Hosting/pull/143)

## 0.5.1[Update Akka.NET from 1.4.41 to 1.4.45](https://github.com/akkadotnet/akka.net/releases/tag/1.4.45)

## 0.5.0[Update Akka.NET from 1.4.41 to 1.4.43](https://github.com/akkadotnet/akka.net/releases/tag/1.4.43)[Add full options support to Akka.Persistence.SqlServer.Hosting](https://github.com/akkadotnet/Akka.Hosting/pull/107)[Improved Akka.Remote.Hosting implementation](https://github.com/akkadotnet/Akka.Hosting/pull/108)[Add a standardized option code pattern for Akka.Hosting developer](https://github.com/akkadotnet/Akka.Hosting/pull/110)[Add Akka.Hosting.TestKit module for unit testing projects using Akka.Hosting](https://github.com/akkadotnet/Akka.Hosting/pull/102)

### Full options support for `Akka.Persistence.SqlServer.Hosting`

You can now use an option class in Akka.Persistence.SqlServer.Hosting to replace HOCON configuration fully.

### Add `Akka.Hosting.TestKit` module

The biggest difference between _Akka.Hosting.TestKit_ and _Akka.TestKit_ is that, since the test is started asynchronously, the _TestKit_ properties and methods would not be available in the unit test class constructor anymore. Since the spec depends on Microsoft `HostBuilder`, configuration has to be broken down into steps. There are overridable methods that user can use to override virtually all of the setup process.

These are steps of what overridable methods gets called. Not all of the methods needs to be overriden, at the minimum, if you do not need a custom hosting environment, you need to override the `ConfigureAkka` method.

1. `ConfigureLogging(ILoggingBuilder)`

   Add custom logger and filtering rules on the `HostBuilder` level.
2. `ConfigureHostConfiguration(IConfigurationBuilder)` 

   Inject any additional hosting environment configuration here, such as faking environment variables, in the `HostBuilder` level.
3. `ConfigureAppConfiguration(HostBuilderContext, IConfigurationBuilder)`

   Inject the application configuration.
4. `ConfigureServices(HostBuilderContext, IServiceCollection)`

   Add additional services needed by the test, such as mocked up services used inside the dependency injection.
5. User defined HOCON configuration is injected by overriding the `Config` property, it is not passed as part of the constructor anymore.
6. `ConfigureAkka(AkkaConfigurationBuilder, IServiceProvider)`

   This is called inside `AddAkka`, use this to configure the `AkkaConfigurationBuilder`
7. `BeforeTestStart()`

   This method is called after the TestKit is initialized. Move all of the codes that used to belong in the constructor here.

`Akka.Hosting.TestKit` extends `Akka.TestKit.TestKitBase` directly, all testing methods are available out of the box.
All of the properties, such as `Sys` and `TestActor` will be available once the unit test class is invoked.

### Add a standardized option code pattern for Akka.Hosting developer

This new feature is intended for Akka.Hosting module developer only, it is used to standardize how Akka.Hosting addresses a very common HOCON configuration pattern. This allows for a HOCON-less programmatic setup replacement for the HOCON path used to configure the HOCON property.

The pattern:

```text
# This HOCON property references to a config block below
akka.discovery.method = akka.discovery.config

akka.discovery.config {
 ... (truncated)

Commits viewable in [compare view](https://github.com/akkadotnet/Akka.Hosting/compare/0.4.3...1.5.55.1).
</details>

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Akka.Persistence.Hosting&package-manager=nuget&previous-version=0.4.3&new-version=1.5.55.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Aaronontheweb and others added 4 commits July 21, 2022 12:26
---
updated-dependencies:
- dependency-name: Akka.Persistence.Hosting
  dependency-version: 1.5.55.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Nov 6, 2025
@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Nov 7, 2025

Looks like Akka.Persistence.Hosting is no longer updatable, so this is no longer needed.

@dependabot dependabot bot closed this Nov 7, 2025
@dependabot dependabot bot deleted the dependabot/nuget/src/Akka.Persistence.Azure.Hosting/Akka.Persistence.Hosting-1.5.55.1 branch November 7, 2025 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

3 participants