Skip to content

Releases: petabridge/Akka.Persistence.Azure

Akka.Persistence.Azure 1.5.49

15 Sep 21:52
886cb3c
Compare
Choose a tag to compare

1.5.49 September 15th 2025

1.5.45 July 11th 2025

1.5.44 June 26th 2025

1.5.42 May 22nd 2025

1.5.40 April 7th 2025

1.5.38 March 11th 2025

Snapshots can now be stored in Azure Blob Storage "folders" by using AzureBlobSnapshotOptions.Folders if you're using Akka.Hosting, or using the "akka.persistence.snapshot-store.azure-blob-store.folders" HOCON settings.

Note

Note that Azure Blob Storage does not implement a true folder tree structure, "folders" are actually a simple prefix to the blob file name.

Example:

If you set "akka.persistence.snapshot-store.azure-blob-store.folders" to "folder1/folder2", then the snapshots will be stored as:

/{account-name}/{container-name}/folder1/folder2/snapshot-{persistence-id}-{sequence-number}

1.5.32.1 December 23rd 2024

1.5.32 December 19th 2024

We've added a new way to configure Akka.Persistence.Azure by allowing users to directly inject TableServiceClient and BlobServiceClient into Azure journal and snapshot store.

var credential = new DefaultAzureCredential();
var tableClient = new TableServiceClient(tableServiceUri, credential);
var blobClient = new BlobServiceClient(blobServiceUri, credential);

akkaConfigurationBuilder.WithAzurePersistence(
        tableServiceClientFactory: () => tableClient,
        blobServiceClientFactory: () => blobClient
    );

1.5.31 December 3rd 2024

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog...

Read more

Akka.Persistence.Azure 1.5.45

10 Jul 21:00
ab98080
Compare
Choose a tag to compare

1.5.45 July 11th 2025

1.5.44 June 26th 2025

1.5.42 May 22nd 2025

1.5.40 April 7th 2025

1.5.38 March 11th 2025

Snapshots can now be stored in Azure Blob Storage "folders" by using AzureBlobSnapshotOptions.Folders if you're using Akka.Hosting, or using the "akka.persistence.snapshot-store.azure-blob-store.folders" HOCON settings.

Note

Note that Azure Blob Storage does not implement a true folder tree structure, "folders" are actually a simple prefix to the blob file name.

Example:

If you set "akka.persistence.snapshot-store.azure-blob-store.folders" to "folder1/folder2", then the snapshots will be stored as:

/{account-name}/{container-name}/folder1/folder2/snapshot-{persistence-id}-{sequence-number}

1.5.32.1 December 23rd 2024

1.5.32 December 19th 2024

We've added a new way to configure Akka.Persistence.Azure by allowing users to directly inject TableServiceClient and BlobServiceClient into Azure journal and snapshot store.

var credential = new DefaultAzureCredential();
var tableClient = new TableServiceClient(tableServiceUri, credential);
var blobClient = new BlobServiceClient(blobServiceUri, credential);

akkaConfigurationBuilder.WithAzurePersistence(
        tableServiceClientFactory: () => tableClient,
        blobServiceClientFactory: () => blobClient
    );

1.5.31 December 3rd 2024

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog storage; these setup classes supports DefaultAzureCredential. Note that to use DefaultAzureCredential from the Azure.Identity package, you need to provide both service URI and credential.

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", bu...
Read more

Akka.Persistence.Azure 1.5.44

26 Jun 19:23
eba099c
Compare
Choose a tag to compare

1.5.44 June 26th 2025

1.5.42 May 22nd 2025

1.5.40 April 7th 2025

1.5.38 March 11th 2025

Snapshots can now be stored in Azure Blob Storage "folders" by using AzureBlobSnapshotOptions.Folders if you're using Akka.Hosting, or using the "akka.persistence.snapshot-store.azure-blob-store.folders" HOCON settings.

Note

Note that Azure Blob Storage does not implement a true folder tree structure, "folders" are actually a simple prefix to the blob file name.

Example:

If you set "akka.persistence.snapshot-store.azure-blob-store.folders" to "folder1/folder2", then the snapshots will be stored as:

/{account-name}/{container-name}/folder1/folder2/snapshot-{persistence-id}-{sequence-number}

1.5.32.1 December 23rd 2024

1.5.32 December 19th 2024

We've added a new way to configure Akka.Persistence.Azure by allowing users to directly inject TableServiceClient and BlobServiceClient into Azure journal and snapshot store.

var credential = new DefaultAzureCredential();
var tableClient = new TableServiceClient(tableServiceUri, credential);
var blobClient = new BlobServiceClient(blobServiceUri, credential);

akkaConfigurationBuilder.WithAzurePersistence(
        tableServiceClientFactory: () => tableClient,
        blobServiceClientFactory: () => blobClient
    );

1.5.31 December 3rd 2024

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog storage; these setup classes supports DefaultAzureCredential. Note that to use DefaultAzureCredential from the Azure.Identity package, you need to provide both service URI and credential.

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Programatically setup the journal table
            builder.WithAzureTableJournal(setup => {
                setup.TableName = "myazuretable";
                setup.ServiceUri = new Uri("https://{account_name}.table.core.windows.net")...
Read more

Akka.Persistence.Azure 1.5.42

22 May 19:48
224f4aa
Compare
Choose a tag to compare

1.5.42 May 22nd 2025

1.5.40 April 7th 2025

1.5.38 March 11th 2025

Snapshots can now be stored in Azure Blob Storage "folders" by using AzureBlobSnapshotOptions.Folders if you're using Akka.Hosting, or using the "akka.persistence.snapshot-store.azure-blob-store.folders" HOCON settings.

Note

Note that Azure Blob Storage does not implement a true folder tree structure, "folders" are actually a simple prefix to the blob file name.

Example:

If you set "akka.persistence.snapshot-store.azure-blob-store.folders" to "folder1/folder2", then the snapshots will be stored as:

/{account-name}/{container-name}/folder1/folder2/snapshot-{persistence-id}-{sequence-number}

1.5.32.1 December 23rd 2024

1.5.32 December 19th 2024

We've added a new way to configure Akka.Persistence.Azure by allowing users to directly inject TableServiceClient and BlobServiceClient into Azure journal and snapshot store.

var credential = new DefaultAzureCredential();
var tableClient = new TableServiceClient(tableServiceUri, credential);
var blobClient = new BlobServiceClient(blobServiceUri, credential);

akkaConfigurationBuilder.WithAzurePersistence(
        tableServiceClientFactory: () => tableClient,
        blobServiceClientFactory: () => blobClient
    );

1.5.31 December 3rd 2024

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog storage; these setup classes supports DefaultAzureCredential. Note that to use DefaultAzureCredential from the Azure.Identity package, you need to provide both service URI and credential.

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Programatically setup the journal table
            builder.WithAzureTableJournal(setup => {
                setup.TableName = "myazuretable";
                setup.ServiceUri = new Uri("https://{account_name}.table.core.windows.net");
                setup.DefaultAzureCredential = credentials;
                // Optional TableClientOptions
                setup.TableClientOptions = new TableClientOptions(); 
            });
            
            // Programatically setup the snapshot-store blob container
            builder.WithAzureBlobsSnapshotStore...
Read more

Akka.Persistence.Azure v1.5.40

07 Apr 20:47
0a4e4d6
Compare
Choose a tag to compare

1.5.40 April 7th 2025

Changes:

  • 0a4e4d6 Update RELEASE_NOTES.md for 1.5.40 release (#503)
  • 5c00fb7 Bump Microsoft.NET.Test.Sdk from 17.12.0 to 17.13.0 (#481)
  • 68d9427 Expand database operation exception information (#502)
  • 4aeae7a Bump coverlet.collector from 6.0.0 to 6.0.4 (#494)
  • 0b09816 Fix missing (skipped) journal table spec (#501)
  • 0ae8272 Bump Akka.Persistence.TCK from 1.5.38 to 1.5.40 (#499)
  • b8c4df9 Bump Akka.Persistence.Query from 1.5.38 to 1.5.40 (#500)

This list of changes was auto generated.

Akka.Persistence.Azure v1.5.38

11 Mar 15:47
69cd914
Compare
Choose a tag to compare

1.5.38 March 11th 2025

Snapshots can now be stored in Azure Blob Storage "folders" by using AzureBlobSnapshotOptions.Folders if you're using Akka.Hosting, or using the "akka.persistence.snapshot-store.azure-blob-store.folders" HOCON settings.

Note

Note that Azure Blob Storage does not implement a true folder tree structure, "folders" are actually a simple prefix to the blob file name.

Example:

If you set "akka.persistence.snapshot-store.azure-blob-store.folders" to "folder1/folder2", then the snapshots will be stored as:

/{account-name}/{container-name}/folder1/folder2/snapshot-{persistence-id}-{sequence-number}

Changes:

  • 69cd914 Update RELEASE_NOTES.md for 1.5.38 release (#490)
  • 1781e32 Add folder support to SnapshotStore (#488)
  • 0675338 Add API and snapshot blob ID verifier (#489)
  • db5a309 Bump Akka.Persistence.Hosting from 1.5.37.2 to 1.5.38 (#483)
  • 18bedac Bump Akka.Cluster.Hosting from 1.5.37.2 to 1.5.38 (#486)
  • a2349fa Bump Akka.Cluster.Sharding from 1.5.37 to 1.5.38 (#485)
  • 0e291d6 Bump Akka.Persistence.TCK from 1.5.37 to 1.5.38 (#487)
  • 5e93fb8 Bump Akka.Cluster.Hosting from 1.5.37 to 1.5.37.2 (#478)
  • 27cbc5b Bump AkkaHostingVersion from 1.5.32 to 1.5.37 (#476)
  • 3ccb999 Bump Azure.Identity from 1.13.1 to 1.13.2 (#472)
See More
  • e8bce13 Bump Azure.Data.Tables from 12.9.1 to 12.10.0 (#471)
  • 3d220d1 Bump AkkaVersion from 1.5.32 to 1.5.37 (#477)

This list of changes was auto generated.

Akka.Persistence.Azure v1.5.32.1

23 Dec 14:38
9151eb7
Compare
Choose a tag to compare

1.5.32.1 December 23rd 2024

Changes:

  • 9151eb7 Update RELEASE_NOTES.md for 1.5.32.1 release (#462)
  • 05fb09b Fix service client configuration failure (#461)

This list of changes was auto generated.

Akka.Persistence.Azure v1.5.32

19 Dec 21:27
17b9801
Compare
Choose a tag to compare

1.5.32 December 19th 2024

We've added a new way to configure Akka.Persistence.Azure by allowing users to directly inject TableServiceClient and BlobServiceClient into Azure journal and snapshot store.

var credential = new DefaultAzureCredential();
var tableClient = new TableServiceClient(tableServiceUri, credential);
var blobClient = new BlobServiceClient(blobServiceUri, credential);

akkaConfigurationBuilder.WithAzurePersistence(
        tableServiceClientFactory: () => tableClient,
        blobServiceClientFactory: () => blobClient
    );

Changes:

  • 17b9801 Update RELEASE_NOTES.md for 1.5.32 release (#460)
  • 7015e27 Bump AkkaHostingVersion from 1.5.31.1 to 1.5.32 (#456)
  • 2011df3 Add option to inject arbitrary service client into journal/snapshot using factory functions (#459)
  • 343d465 Bump AkkaVersion from 1.5.31 to 1.5.32 (#457)
  • 0e9ac0b Revert "Fix possible auth caching issue (#453)" (#455)

This list of changes was auto generated.

Akka.Persistence.Azure v1.5.31

03 Dec 16:22
375306a
Compare
Choose a tag to compare

1.5.31 December 3rd 2024

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog storage; these setup classes supports DefaultAzureCredential. Note that to use DefaultAzureCredential from the Azure.Identity package, you need to provide both service URI and credential.

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Programatically setup the journal table
            builder.WithAzureTableJournal(setup => {
                setup.TableName = "myazuretable";
                setup.ServiceUri = new Uri("https://{account_name}.table.core.windows.net");
                setup.DefaultAzureCredential = credentials;
                // Optional TableClientOptions
                setup.TableClientOptions = new TableClientOptions(); 
            });
            
            // Programatically setup the snapshot-store blob container
            builder.WithAzureBlobsSnapshotStore(setup => {
                setup.ContainerName = "myAzureBlobContainer";
                setup.ServiceUri = new Uri("https://{account_name}.blob.core.windows.net");
                setup.DefaultAzureCredential = credentials;
                // Optional BlobClientOptions
                setup.BlobClientOptions = new BlobClientOptions(); 
            });
            
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

A few convenience Akka.Hosting extension methods are also added as a shortcut:

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Add the journal table
            builder.WithAzureTableJournal(
                serviceUri: new Uri("https://{account_name}.table.core.windows.net"),
                defaultAzureCredential: credentials);
            
            // Add the snapshot-store blob container
            builder.WithAzureBlobsSnapshotStore(
                serviceUri: new Uri("https://{account_name}.blob.core.windows.net"),
                defaultAzureCredential: credentials);
            
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

0.9.0 July 21 2022

Added Akka.Hosting support to Akka.Persistence.Azure, which you can activate via the following:

First, install the Akka.Persistence.Azure.Hosting NuGet package:

PS> install-package Akka.Persistence.Azure.Hosting

Next, add the WithAzurePersistence method calls to your AkkaConfigurationBuilder (from Akka.Hosting):

var conn = Environment.GetEnvironmentVariable("AZURE_CONNECTION_STR");
var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
        	// enables both journal and snapshot store
            builder.WithAzurePersistence(conn);
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

await host.StartAsync();
return host;

You can also call the following methods to activate the journal / snapshot stores independently:

  • WithAzureTableJournal
  • WithAzureBlobsSnapshotStore

0.8.4 June 2 2022

  • Upgraded to [Akka.NET 1.4...
Read more

Akka.Persistence.Azure v1.5.28

11 Sep 21:22
92e33f0
Compare
Choose a tag to compare

1.5.28 September 11th 2024

1.5.26 July 3 2024

1.5.17.1 March 4 2024

1.5.13 October 6 2023

1.5.1 March 16 2023

Multi Journal Support

You can now add more than one Akka.Persistence.Azure settings and use them singularly for different Akka plugins.

In the example below, we set up two separate journal options with two distinct identifier, one is being used as default persistence plugin, and the other are being used as the journal for cluster sharding.

var persistenceJournal = new AzureTableStorageJournalOptions(true)
{
    Identifier = "azure-journal",
    ConnectionString = connectionString
};
var shardJournal = new AzureTableStorageJournalOptions(false)
{
    Identifier = "azure-shard-journal",
    ConnectionString = shardConnectionString
};
builder
    .WithClustering()
    .WithAzureTableJournal(persistenceJournal)
    .WithAzureTableJournal(shardJournal)
    .WithAzureBlobsSnapshotStore(new AzureBlobSnapshotOptions
    {
        ConnectionString = connectionString
    })
    .WithShardRegion<ShardRegionKey>(
        "region-1",
        Customer.Props,
        new MessageExtractor(10),
        new ShardOptions
        {
            JournalOptions = shardJournal,
            StateStoreMode = StateStoreMode.Persistence
        });

1.5.0 March 02 2023

0.9.2 September 27 2022

0.9.1 August 29 2022

New Setup classes are added to allow programmatic setup of the journal table and snapshot-store blog storage; these setup classes supports DefaultAzureCredential. Note that to use DefaultAzureCredential from the Azure.Identity package, you need to provide both service URI and credential.

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Programatically setup the journal table
            builder.WithAzureTableJournal(setup => {
                setup.TableName = "myazuretable";
                setup.ServiceUri = new Uri("https://{account_name}.table.core.windows.net");
                setup.DefaultAzureCredential = credentials;
                // Optional TableClientOptions
                setup.TableClientOptions = new TableClientOptions(); 
            });
            
            // Programatically setup the snapshot-store blob container
            builder.WithAzureBlobsSnapshotStore(setup => {
                setup.ContainerName = "myAzureBlobContainer";
                setup.ServiceUri = new Uri("https://{account_name}.blob.core.windows.net");
                setup.DefaultAzureCredential = credentials;
                // Optional BlobClientOptions
                setup.BlobClientOptions = new BlobClientOptions(); 
            });
            
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

A few convenience Akka.Hosting extension methods are also added as a shortcut:

var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
            var credentials = new DefaultAzureCredential();
            
            // Add the journal table
            builder.WithAzureTableJournal(
                serviceUri: new Uri("https://{account_name}.table.core.windows.net"),
                defaultAzureCredential: credentials);
            
            // Add the snapshot-store blob container
            builder.WithAzureBlobsSnapshotStore(
                serviceUri: new Uri("https://{account_name}.blob.core.windows.net"),
                defaultAzureCredential: credentials);
            
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

0.9.0 July 21 2022

Added Akka.Hosting support to Akka.Persistence.Azure, which you can activate via the following:

First, install the Akka.Persistence.Azure.Hosting NuGet package:

PS> install-package Akka.Persistence.Azure.Hosting

Next, add the WithAzurePersistence method calls to your AkkaConfigurationBuilder (from Akka.Hosting):

var conn = Environment.GetEnvironmentVariable("AZURE_CONNECTION_STR");
var host = new HostBuilder()
    .ConfigureServices(collection =>
    {
        collection.AddAkka("MyActorSys", builder =>
        {
        	// enables both journal and snapshot store
            builder.WithAzurePersistence(conn);
            builder.StartActors((system, registry) =>
            {
                var myActor = system.ActorOf(Props.Create(() => new MyPersistenceActor("ac1")), "actor1");
                registry.Register<MyPersistenceActor>(myActor);
            });
        });
    }).Build();

await host.StartAsync();
return host;

You can also call the following methods to activate the journal / snapshot stores independently:

  • WithAzureTableJournal
  • WithAzureBlobsSnapshotStore

0.8.4 June 2 2022

0.8.3 September 9 2021

0.8.2 April 20 2021

**Releas...

Read more