Skip to content

Akka.Persistence.Azure v0.9.2

Compare
Choose a tag to compare
@Aaronontheweb Aaronontheweb released this 27 Sep 20:32
1d12d3d

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

Release of Akka.Persistence.Azure

Changes:

  • 1d12d3d Merge pull request #259 from petabridge/dev
  • 6d8ec7f Merge pull request #252 from petabridge/dependabot/nuget/Microsoft.NET.Test.Sdk-17.3.2
  • b942ec4 Bump Microsoft.NET.Test.Sdk from 17.3.1 to 17.3.2
  • 98dede2 Merge pull request #260 from Arkatufus/add_xunit.runner.json
  • fb56397 Add xunit.runner.json
  • 2b16e90 Merge pull request #258 from Arkatufus/Update_RELEASE_NOTES_for_0.9.2
  • 95ef401 Update RELEASE_NOTES.md for 0.9.2 release
  • 2cc13df Merge pull request #257 from Arkatufus/AkkaVersion_1.4.43
  • 205f2db Merge remote-tracking branch 'upstream/dev' into AkkaVersion_1.4.43
  • 837a0e3 Bump AkkaVersion from 1.4.41 to 1.4.43
See More
  • 4f5147f Merge pull request #253 from petabridge/dependabot/nuget/AkkaVersion-1.4.42
  • 5fe73f9 Bump AkkaVersion from 1.4.41 to 1.4.42
  • e8f0f53 Merge pull request #256 from Arkatufus/chunk_documentation
  • dad8e68 Add chunked transaction operation documentation
  • ac47852 Re-add chunked transaction batching support (#254)
  • d1baecf Migrate DefaultAzureCredential to TokenCredential (#250)
  • c22a034 Cleanup all async operation during shutdown (#249)
  • 7d73823 Bump Azure.Identity from 1.6.1 to 1.7.0 (#247)
  • 51d3142 Bump Docker.DotNet from 3.125.11 to 3.125.12 (#246)
  • 20f2168 Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3 (#245)
  • 2994926 Bump Docker.DotNet from 3.125.10 to 3.125.11 (#244)
  • db3c2c6 Bump AkkaVersion from 1.4.40 to 1.4.41 (#243)
  • 445c497 Bump Microsoft.NET.Test.Sdk from 17.3.0 to 17.3.1 (#242)
  • 09468d0 Add README documentation for programatic Setup (#241)

This list of changes was auto generated.