Releases: petabridge/Akka.Persistence.Azure
Akka.Persistence.Azure v1.5.28
1.5.28 September 11th 2024
- Update Akka.NET v1.5.28
- Update Akka.Hosting v1.5.28
- Bump Azure.Identity to 1.12.0
- Bump Azure.Data.Tables to 12.9.0
- Bump Azure.Storage.Blobs to 12.21.2
1.5.26 July 3 2024
1.5.17.1 March 4 2024
- Update Akka.NET v1.5.17.1
- Update Akka.Hosting v1.5.17.1
- Bump Azure.Identity to 1.10.4
- Bump Azure.Data.Tables to 12.18.3
- Bump Azure.Storage.Blobs to 12.19.1
1.5.13 October 6 2023
- Update Akka.NET v1.5.13
- Update Akka.Hosting v1.5.13
- Bump Azure.Storage.Blobs to 12.18.0
- Bump Azure.Data.Tables to 12.18.1
- Bump Azure.Identity to 1.10.1
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
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
**Releas...
Akka.Persistence.Azure v1.5.26
1.5.26 July 3 2024
Changes:
- 66901ef V1.5.26 release notes (#413)
- 5b7c984 fixed Akka.NET dependencies (#412)
- 627f3b0 Bump AkkaHostingVersion from 1.5.20 to 1.5.25 (#409)
- ddca489 Bump Azure.Identity from 1.11.0 to 1.11.4 (#407)
- 27e70b1 Bump Azure.Storage.Blobs from 12.19.1 to 12.20.0 (#398)
- e93d7c6 Bump Microsoft.NET.Test.Sdk from 17.9.0 to 17.10.0 (#399)
- 5ca66eb Bump AkkaVersion from 1.5.19 to 1.5.20 (#395)
- 876f299 Bump AkkaHostingVersion from 1.5.19 to 1.5.20 (#396)
This list of changes was auto generated.
Akka.Persistence.Azure v1.5.19
1.5.19 April 24 2024
- Update Akka.NET v1.5.19
- Update Akka.Hosting v1.5.19
- Fix tag query message replay logic
- Bump Azure.Identity to 1.11.0
1.5.17.1 March 4 2024
- Update Akka.NET v1.5.17.1
- Update Akka.Hosting v1.5.17.1
- Bump Azure.Identity to 1.10.4
- Bump Azure.Data.Tables to 12.18.3
- Bump Azure.Storage.Blobs to 12.19.1
1.5.13 October 6 2023
- Update Akka.NET v1.5.13
- Update Akka.Hosting v1.5.13
- Bump Azure.Storage.Blobs to 12.18.0
- Bump Azure.Data.Tables to 12.18.1
- Bump Azure.Identity to 1.10.1
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
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
Release of Akka.Persistence.Azure
Changes:
Akka.Persistence.Azure v1.5.17.1
1.5.17.1 March 4 2024
- Update Akka.NET v1.5.17.1
- Update Akka.Hosting v1.5.17.1
- Bump Azure.Identity to 1.10.4
- Bump Azure.Data.Tables to 12.18.3
- Bump Azure.Storage.Blobs to 12.19.1
1.5.13 October 6 2023
- Update Akka.NET v1.5.13
- Update Akka.Hosting v1.5.13
- Bump Azure.Storage.Blobs to 12.18.0
- Bump Azure.Data.Tables to 12.18.1
- Bump Azure.Identity to 1.10.1
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
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
Release of Akka.Persistence.Azure
Changes:
- c780087 Update RELEASE_NOTES.md for 1.5.17.1 (#380)
- c463566 Bump Microsoft.SourceLink.GitHub from 1.1.1 to 8.0.0 (#360)
- 697fe32 Bump Microsoft.NET.Test.Sdk from 17.8.0 to 17.9.0 (#370)
- 6ba8686 Bump AkkaVersion from 1.5.16 to 1.5.17.1 (#375)
- ced20db Fix sharding unit test, extend wait time (#379)
- 4967251 Bump AkkaHostingVersion from 1.5.15 to 1.5.17.1 (#376)
- 60c2165...
Akka.Persistence.Azure v1.5.13
1.5.13 October 6 2023
- Update Akka.NET v1.5.13
- Update Akka.Hosting v1.5.13
- Bump Azure.Storage.Blobs to 12.18.0
- Bump Azure.Data.Tables to 12.18.1
- Bump Azure.Identity to 1.10.1
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
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
Release of Akka.Persistence.Azure
Changes:
- 0bf73aa Update RELEASE_NOTES.md for 1.5.13 release (#344)
- c31fd64 Bump Azure.Storage.Blobs from 12.15.1 to 12.18.0 (#337)
- def4a65 Modernize solution (#343)
- 4a8bd5f Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.2 (#335)
- 163b2ff Bump Azure.Data.Tables from 12.8.0 to 12.8.1 (#333)
- 590a2e9 Bump xunit from 2.5.0 to 2.5.1 (#339)
- 81580a6 Bump AkkaHostingVersion from 1.5.8.1 to 1.5.13 (#342)
- 173fe16 Bump Azure.Identity from 1.9.0 to 1.10.1 (#338)
- d387ce0 Bump AkkaVersion from 1.5.11 to 1.5.13 (#341)
- 629df07 Bump xunit.runner.visualstudio from 2.5.0 to 2.5.1 (#340)
Akka.Persistence.Azure v1.5.1
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
});
Changes:
- 346e028 Update RELEASE_NOTES.md for 1.5.1 release (#295)
- 0d9fbcd Bump AkkaVersion from 1.5.0 to 1.5.1 (#294)
- 51254a9 Update copyright headers to 2023 (#292)
- 05368d5 Multi journal config feature implementation (#272)
- 4bc801e Bump Azure.Storage.Blobs from 12.13.1 to 12.15.0 (#287)
- abfb60b Fix NuGet URL, license, and icon url (#291)
This list of changes was auto generated.
Akka.Persistence.Azure v1.5.0
1.5.0 March 02 2023
0.9.2 September 27 2022
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
Release of Akka.Persistence.Azure
Changes:
- 899b232 upgraded Akka.Persistence.Azure to Akka.NET v1.5 (#290)
- 1c912b9 Bump Docker.DotNet from 3.125.12 to 3.125.13 (#289)
- 4df4bb0 Update Akka.NET and Akka.Hosting to 1.5.0-beta6 (#288)
- 5f234cb Bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0 (#286)
- 0ca81c9 Add options support to hosting extensions (#285)
- 5d8dbc7 Centralized NuGet Package Management (#284)
- b61bcf7 Bump Azure.Data.Tables from 12.7.1 to 12.8.0 (#281)
- 4db81a8 Bump Azure.Identity from 1.8.1 to 1.8.2 (#283)
- e608066 Bump Akka.Persistence.Hosting from 1.0.2 to 1.0.3 (#282)
- dad9c90 Bump Akka.Persistence.Hosting from 1.0.1 to 1.0.2 (#280)
See More
- 7e6eefa Bump AkkaVersion from 1.4.48 to 1.4.49 (#279)
- 5d20838 Bump AkkaVersion from 1.4.47 to 1.4.48 (#276)
- 7e17c60 Bump Akka.Persistence.Hosting from 1.0.0 to 1.0.1 (#277)
- 2bc9a94 Bump Azure.Identity from 1.8.0 to 1.8.1 (#278)
- bf0d27b Bump Akka.Persistence.Hosting from 0.5.1 to 1.0.0 (#275)
- 9c67978 Bump Microsoft.NET.Test.Sdk from 17.4.0 to 17.4.1 (#274)
- 0d2ecf6 Bump Azure.Data.Tables from 12.6.1 to 12.7.1 (#271)
- 7aeb0ad Bump Azure.Identity from 1.7.0 to 1.8.0 (#268)
- 7f670c7 Bump AkkaVersion from 1.4.45 to 1.4.47 (#273)
- a05ad8c Bump Microsoft.NET.Test.Sdk from 17.3.2 to 17.4.0 (#267)
- dc47207 Bump Akka.Persistence.Hosting from 0.5.0 to 0.5.1 (#266)
- 4aab951 Bump AkkaVersion from 1.4.44 to 1.4.45 (#264)
- 2115860 Bump AkkaVersion from 1.4.43 to 1.4.44 (#263)
- d98cd75 Bump Akka.Persistence.Hosting from 0.4.3 to 0.5.0 (#261)
This list of changes was auto generated.
Akka.Persistence.Azure v0.9.2
0.9.2 September 27 2022
- Bump Akka.NET version from 1.4.40 to 1.4.43
- Bump Akka.Persistence.Hosting from 0.4.2 to 0.4.3
- Bump Azure.Identity from 1.6.1 to 1.7.0
- Clean up all async operations during actor stop
- Refactor
DefaultAzureCredential
toTokenCredential
- Chunk batch transactions to 100 item chunk batches
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
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.
Akka.Persistence.Azure v0.9.1
0.9.1 August 29 2022
- Bump Akka.NET version from 1.4.39 to 1.4.40
- Bump Akka.Persistence.Hosting version from 0.4.1 to 0.4.2
- Bump Azure.Storage.Blobs version from 12.12.0 to 12.13.1
- Bump Azure.Identity version from 1.6.0 to 1.6.1
- Added programmatic Setup classes
- Update Akka.Hosting support to support
DefaultAzureCredential
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();
Changes:
- b0cf09f Merge pull request #240 from petabridge/dev
- b96d8a9 Update RELEASE_NOTES.md for v0.9.1 release (#239)
- cdf3a41 Update Akka.Hosting extension methods to support DefaultAzureCredential (#237)
- 27e7121 Update copyright headers (#238)
- 2e7bfd2 Add/update Setup classes (#235)
- 48046bf Bump Azure.Storage.Blobs from 12.13.0 to 12.13.1 (#234)
- 2e9a2ee Bump Azure.Identity from 1.6.0 to 1.6.1 (#231)
- 592ab6c Bump xunit from 2.4.1 to 2.4.2 (#230)
- a648a40 Bump Azure.Storage.Blobs from 12.12.0 to 12.13.0 (#219)
- db7ee2f Bump Microsoft.NET.Test.Sdk from 17.2.0 to 17.3.0 (#232)
See More
- da2cbfe Bump Akka.Persistence.Hosting from 0.4.1 to 0.4.2 (#233)
- 0db6e6f Bump AkkaVersion from 1.4.39 to 1.4.40 (#229)
This list of changes was auto generated.
Akka.Persistence.Azure v0.9.0
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.39
- Update Azure.Identity to 1.6.0
- Update System.Linq.Async to 6.0.1
- Upgrade
Microsoft.Azure.Consmos.Table
toAzure.Data.Tables
12.5.0
0.8.3 September 9 2021
0.8.2 April 20 2021
Release of Akka.Persistence.Azure
Changes:
- a2a5dc6 Merge pull request #226 from petabridge/dev
- f099e17 Upgrade to Akka.Persistence.Hosting v0.4.1 (#227)
- fada301 Merge branch 'master' into dev
- 6b4689b added detailed release notes and readme updates (#225)
- f3344af added initial Akka.Persistence.Hosting implementation for Azure (#223)
- 3111200 Bump Docker.DotNet from 3.125.5 to 3.125.10 (#220)
- 71c6207 Bump Azure.Data.Tables from 12.5.0 to 12.6.1 (#218)
This list of changes was auto generated.