Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Local akka persistence support and v1.4 updates #67

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
4 changes: 4 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [0.6.0] / 03 October 2022
- Added local Akka.Persistence
- Upgraded to Akka.NET v1.4.43

## [0.5.12] / 25 April 2022
- Added `DistributedPubSub` - but made it optional
- Disabled `DistributedPubSub`
Expand Down
47 changes: 47 additions & 0 deletions k8s/local/environment/azurite.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
apiVersion: v1
kind: LoadBalancer
metadata:
name: azurite
spec:
ports:
- port: 10000
name: blob
- port: 10001
name: table
- port: 10002
name: queue
selector:
app: azurite
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azurite
spec:
replicas: 1
selector:
matchLabels:
app: azurite
template:
metadata:
labels:
app: azurite
spec:
containers:
- name: azurite
image: mcr.microsoft.com/azure-storage/azurite
ports:
- containerPort: 10000
name: blob
- containerPort: 10001
name: table
- containerPort: 10002
name: queue
---
apiVersion: v1
kind: Secret
metadata:
name: azure-connection-string
type: Opaque
data:
AzureConnectionString: VXNlRGV2ZWxvcG1lbnRTdG9yYWdlPXRydWU7RGV2ZWxvcG1lbnRTdG9yYWdlUHJveHlVcmk9aHR0cDovL2F6dXJpdGU=
15 changes: 13 additions & 2 deletions k8s/local/services/local-services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ spec:
emptyDir: {}
containers:
- name: frontend
image: akkadotnet.frontend:0.5.9
image: akkadotnet.frontend:0.6.1
env:
- name: POD_NAME
valueFrom:
Expand Down Expand Up @@ -207,16 +207,27 @@ spec:
emptyDir: {}
containers:
- name: backend
image: akkadotnet.backend:0.5.9
image: akkadotnet.backend:0.6.1
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: StressOptions__AkkaClusterOptions__Hostname
value: "$(POD_NAME).backend-akka"
- name: ShardingOptions__UseDData
value: "false"
- name: ShardingOptions__RememberEntities
value: "true"
- name: StressOptions__DispatcherConfig
value: "Defaults"
- name: DOTNET_DiagnosticPorts
value: /diag/port
- name: StressOptions__PersistenceOptions__AzureStorageConnectionString
valueFrom:
secretKeyRef:
name: azure-connection-string
key: AzureConnectionString
envFrom:
- configMapRef:
name: stress-configs
Expand Down
21 changes: 8 additions & 13 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@
<PropertyGroup>
<Copyright>Copyright © 2022 Petabridge</Copyright>
<Authors>Petabridge</Authors>
<VersionPrefix>0.5.12</VersionPrefix>
<PackageReleaseNotes>• Added DistributedPubSub • but made it optional
• Disabled DistributedPubSub
• Set state-store-mode=persistence
• Hard code disable DData
• Actually use ShardOptions
• Run with Akka.NET v1.5.0-beta</PackageReleaseNotes>
<VersionPrefix>0.6.0</VersionPrefix>
<PackageReleaseNotes>• Added local Akka.Persistence
• Upgraded to Akka.NET v1.4.43</PackageReleaseNotes>
<PackageIconUrl>
</PackageIconUrl>
<PackageProjectUrl>
Expand All @@ -22,13 +18,12 @@
</ItemGroup>
<PropertyGroup>
<NetCoreFramework>net6.0</NetCoreFramework>
<NBenchVersion>1.2.2</NBenchVersion>
<XunitVersion>2.4.1</XunitVersion>
<XunitVersion>2.4.2</XunitVersion>
<TestSdkVersion>17.1.0</TestSdkVersion>
<AkkaVersion>1.4.38</AkkaVersion>
<PbmVersion>1.0.2</PbmVersion>
<AkkaHostingVersion>0.3.0</AkkaHostingVersion>
<AkkaManagementVerison>0.2.4-beta3</AkkaManagementVerison>
<AkkaVersion>1.4.45</AkkaVersion>
<PbmVersion>1.1.3</PbmVersion>
<AkkaHostingVersion>0.5.1</AkkaHostingVersion>
<AkkaManagementVerison>0.3.0-beta2</AkkaManagementVerison>
<FluentAssertionsVersion>6.6.0</FluentAssertionsVersion>
<OTelVersion>1.2.0-rc5</OTelVersion>
<OTelInstrumentationVersion>1.0.0-rc9.2</OTelInstrumentationVersion>
Expand Down
7 changes: 7 additions & 0 deletions src/backend/AkkaDotNet.BackEnd/AkkaDotNet.BackEnd.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,11 @@
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.2.0" />
</ItemGroup>

<ItemGroup>
<None Remove="sharding-upgrade.conf" />
<Content Include="sharding-upgrade.conf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

</Project>
7 changes: 7 additions & 0 deletions src/backend/AkkaDotNet.BackEnd/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Akka.Actor;
using Akka.Cluster.Hosting;
using Akka.Cluster.Sharding;
using Akka.Event;
using Akka.Hosting;
using AkkaDotNet.BackEnd.Actors;
using AkkaDotNet.Infrastructure;
Expand All @@ -12,6 +13,7 @@
using AkkaDotNet.Infrastructure.Sharding;
using AkkaDotNet.Messages;
using Serilog;
using LogLevel = Microsoft.Extensions.Logging.LogLevel;

var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddEnvironmentVariables();
Expand All @@ -22,6 +24,10 @@

builder.Services.AddAkka(ActorSystemConstants.ActorSystemName, configurationBuilder =>
{
configurationBuilder.ConfigureLoggers(configBuilder =>
{
configBuilder.LogLevel = Akka.Event.LogLevel.DebugLevel;
});
configurationBuilder.WithClusterBootstrap(akkaConfiguration,
new[] { ActorSystemConstants.BackendRole, ActorSystemConstants.DistributedPubSubRole });
configurationBuilder.WithSerilog(akkaConfiguration.SerilogOptions);
Expand All @@ -37,6 +43,7 @@
})
.WithItemMessagingActor();
}
//configurationBuilder.AddHoconFile("sharding-upgrade.conf");
});

builder.Services.AddOpenTelemetry();
Expand Down
12 changes: 6 additions & 6 deletions src/backend/AkkaDotNet.BackEnd/appsettings.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"StressOptions": {
"DistributedPubSubOptions": {
"Enabled": false,
"Enabled": true,
"NumTopics": 100
},
"ShardingOptions": {
"Enabled": true,
"UseDData": true,
"RememberEntities": false
"UseDData": false,
"RememberEntities": true
},
"AkkaClusterOptions": {
"Hostname": "localhost",
Expand All @@ -24,10 +24,10 @@
"SerilogOptions": {
"EnableSeq": false
},
"DispatcherConfig": "ChannelExecutor64",
"DispatcherConfig": "Defaults",
"PersistenceOptions": {
"Enabled": false
},
"Enabled": true
}
},

"Logging": {
Expand Down
24 changes: 24 additions & 0 deletions src/backend/AkkaDotNet.BackEnd/sharding-upgrade.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
akka.cluster.sharding {
remember-entities = on
remember-entities-store = eventsourced
state-store-mode = persistence

# make sure we test snapshots
snapshot-after = 5

verbose-debug-logging = on
fail-on-invalid-entity-state-transition = on

# Lots of sharding setup, make it quicker
retry-interval = 500ms
}

akka.persistence.journal.azure-table{
event-adapters {
coordinator-migration = "Akka.Cluster.Sharding.OldCoordinatorStateMigrationEventAdapter, Akka.Cluster.Sharding"
}

event-adapter-bindings {
"Akka.Cluster.Sharding.ShardCoordinator+IDomainEvent, Akka.Cluster.Sharding" = coordinator-migration
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<ItemGroup>
<PackageReference Include="Akka.Cluster.Hosting" Version="$(AkkaHostingVersion)" />
<PackageReference Include="Akka.Cluster.Sharding" Version="1.5.0-beta*" />
<PackageReference Include="Akka.Cluster.Sharding" Version="$(AkkaVersion)" />
<PackageReference Include="Akka.Discovery" Version="$(AkkaVersion)" />
<PackageReference Include="Akka.Discovery.KubernetesApi" Version="$(AkkaManagementVerison)" />
<PackageReference Include="Akka.Coordination.KubernetesApi" Version="$(AkkaManagementVerison)" />
Expand All @@ -25,7 +25,7 @@
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="$(OTelInstrumentationVersion)" />
<PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="$(OTelVersion)" />
<PackageReference Include="OpenTelemetry.Exporter.Prometheus" Version="$(OTelVersion)" />
<PackageReference Include="Phobos.Hosting" Version="2.0.2" />
<PackageReference Include="Phobos.Hosting" Version="2.1.0-beta2" />
</ItemGroup>

<ItemGroup>
Expand Down