Skip to content

Migrate to Akka.NET Aspire plugin and upgrade to .NET 10#275

Merged
Aaronontheweb merged 2 commits intopetabridge:devfrom
Aaronontheweb:feature/migrate-akka-aspire-plugin
Feb 18, 2026
Merged

Migrate to Akka.NET Aspire plugin and upgrade to .NET 10#275
Aaronontheweb merged 2 commits intopetabridge:devfrom
Aaronontheweb:feature/migrate-akka-aspire-plugin

Conversation

@Aaronontheweb
Copy link
Member

Summary

  • Replace hand-rolled Akka.NET cluster config in Aspire (Azure Storage emulator, manual endpoint/env var injection) with the Aaron.Akka.Aspire plugin's AddAkka().WithClustering().WithReference() API backed by Redis discovery
  • Upgrade from .NET 9 to .NET 10, Aspire 9.5.1 to 13.1.0, Akka.NET 1.5.53 to 1.5.60
  • Delete AkkaManagementExtensions.cs — fully replaced by plugin
  • Implement dual-path networking in AkkaConfiguration.cs: Aspire plugin path (WithAspireClusterBootstrap + WithRedisDiscovery) when Akka:Cluster:Enabled is set by the plugin, existing K8s/standalone path otherwise
  • K8s deployment path preserved with zero YAML changes

Test plan

  • dotnet build DrawTogether.sln — all 8 projects compile
  • dotnet test tests/DrawTogether.Tests — all 8 unit tests pass
  • Multi-node Aspire run (3 replicas) — Redis healthy, SQL healthy, all 3 replicas form cluster via Redis discovery, "Member Up" messages confirmed in logs
  • CI pipeline passes
  • E2E tests pass (DrawTogether.End2End.Tests)

Replace hand-rolled Akka.NET cluster configuration in Aspire (Azure Storage
emulator, manual endpoint/env var injection) with the Aaron.Akka.Aspire plugin's
AddAkka().WithClustering().WithReference() API backed by Redis discovery.

- Upgrade SDK to .NET 10.0.102, TFM to net10.0
- Upgrade Aspire to 13.1.0, Akka.NET to 1.5.60, Hosting/Management to 1.5.59
- Add Aaron.Akka.Aspire.Hosting, Aaron.Akka.Aspire, Aaron.Akka.Discovery.Redis
- Replace Azure Storage emulator with Redis container for cluster discovery
- Delete AkkaManagementExtensions.cs (fully replaced by plugin)
- Implement dual-path networking in AkkaConfiguration.cs: Aspire plugin path
  (WithAspireClusterBootstrap + WithRedisDiscovery) when Akka:Cluster:Enabled
  is set, K8s/standalone path (existing ConfigureNetwork) otherwise
- K8s deployment path preserved with zero YAML changes
Document Aspire MCP integration and relevant dotnet-skills for
Aspire configuration, integration testing, service defaults, and
Akka.NET cluster setup.
@Aaronontheweb Aaronontheweb merged commit 35c2fce into petabridge:dev Feb 18, 2026
3 checks passed
@Aaronontheweb Aaronontheweb deleted the feature/migrate-akka-aspire-plugin branch February 18, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant