Skip to content

About

Akka.NET cluster management, bootstrapping, and more.

Resources

Code of conduct

Contributing

Stars

31 stars

Watchers

5 watching

Forks

Latest commit

 

History

955 Commits

Folders and files

Repository files navigation

Akka Management

This project provides a home for Akka.NET cluster management, bootstrapping, and more. These tools aims to help with cluster management in various dynamic environments such as Azure, Amazon AWS and Kubernetes.

Supported Plugins

  • Akka.Management - Akka.Cluster management tool over HTTP. You can read more in the documentation here.
  • Akka.Management.Cluster.Bootstrap - Automated Akka.Cluster bootstrapping in a dynamic environment. You can read more in the documentation here.

    NOTE

    As of version 1.0.0, cluster bootstrap came bundled with the core Akka.Management NuGet package and are part of the default HTTP endpoint for Akka.Management. All Akka.Management.Cluster.Bootstrap NuGet package versions below 1.0.0 should now be considered deprecated.

  • Akka.Discovery.AwsApi - Akka.Cluster bootstrapping discovery service using EC2, ECS, and the AWS API. You can read more in the documentation here.
  • Akka.Discovery.KubernetesApi - Akka.Cluster bootstrapping discovery service using Kubernetes API. You can read more in the documentation here.
  • Akka.Discovery.Azure - Akka.Cluster bootstrapping discovery service using Azure Table Storage. You can read more in the documentation here.
  • Akka.Discovery.Dns - Akka.Cluster bootstrapping discovery service using DNS. You can read more in the documentation here.
  • Akka.Discovery.Redis - Akka.Cluster bootstrapping discovery service using Redis. Each node registers itself under a TTL key and refreshes it on a heartbeat; peers discover one another by scanning those keys, and dead nodes are removed automatically by Redis key expiry. A lightweight alternative to Akka.Discovery.Azure, well suited to .NET Aspire local development and any environment that already runs Redis. You can read more in the documentation here.
  • Akka.Coordination.KubernetesApi - provides a lease-based distributed lock mechanism backed by Kubernetes CRD for Akka.NET Split Brain Resolver, Akka.Cluster.Sharding, and Akka.Cluster.Singleton. Documentation can be read here
  • Akka.Coordination.Azure - provides a lease-based distributed lock mechanism backed by Microsoft Azure Blob Storage for Akka.NET Split Brain Resolver, Akka.Cluster.Sharding, and Akka.Cluster.Singleton. Documentation can be read here
  • Akka.Aspire.Hosting - .NET Aspire hosting integration. Declare an Akka.NET cluster's topology (discovery backend, replica count, ports) in your Aspire AppHost; every service replica wired with WithReference then discovers its peers, forms a cluster, and reports health. You can read more in the documentation here.
  • Akka.Aspire - .NET Aspire service integration. WithAspireClusterBootstrap configures Akka.Remote, Akka.Cluster, Akka.Management, Cluster Bootstrap, and a cluster-membership health check from the configuration the Akka.Aspire.Hosting AppHost injects — no manual HOCON required. You can read more in the documentation here.

Build Instructions

Supported Commands

This project supports a wide variety of commands, all of which can be listed via:

Windows

c:\> build.cmd help

Linux / OS X

c:\> build.sh help

However, please see this readme for full details.

Summary

  • build.[cmd|sh] all - runs the entire build system minus documentation: NBench, Tests, and Nuget.
  • build.[cmd|sh] buildrelease - compiles the solution in Release mode.
  • build.[cmd|sh] runtestsnetcore - compiles the solution in Release mode and runs the unit test suite using the netcoreapp3.1 platform (all projects that end with the .Tests.csproj suffix). All of the output will be published to the ./TestResults folder.
  • build.[cmd|sh] runtestsnet - compiles the solution in Release mode and runs the unit test suite using the net5.0 platform (all projects that end with the .Tests.csproj suffix). All of the output will be published to the ./TestResults folder.
  • build.[cmd|sh] nbench - compiles the solution in Release mode and runs the NBench performance test suite (all projects that end with the .Tests.Performance.csproj suffix). All of the output will be published to the ./PerfResults folder.
  • build.[cmd|sh] nuget - compiles the solution in Release mode and creates Nuget packages from any project that does not have <IsPackable>false</IsPackable> set and uses the version number from RELEASE_NOTES.md.
  • build.[cmd|sh] nuget nugetprerelease=dev - compiles the solution in Release mode and creates Nuget packages from any project that does not have <IsPackable>false</IsPackable> set - but in this instance all projects will have a VersionSuffix of -beta{DateTime.UtcNow.Ticks}. It's typically used for publishing nightly releases.
  • build.[cmd|sh] nuget SignClientUser=$(signingUsername) SignClientSecret=$(signingPassword) - compiles the solution in Release modem creates Nuget packages from any project that does not have <IsPackable>false</IsPackable> set using the version number from RELEASE_NOTES.md, and then signs those packages using the SignClient data below.
  • build.[cmd|sh] nuget SignClientUser=$(signingUsername) SignClientSecret=$(signingPassword) nugetpublishurl=$(nugetUrl) nugetkey=$(nugetKey) - compiles the solution in Release modem creates Nuget packages from any project that does not have <IsPackable>false</IsPackable> set using the version number from RELEASE_NOTES.md, signs those packages using the SignClient data below, and then publishes those packages to the $(nugetUrl) using NuGet key $(nugetKey).
  • build.[cmd|sh] DocFx - compiles the solution in Release mode and then uses DocFx to generate website documentation inside the ./docs/_site folder. Use the ./serve-docs.cmd on Windows to preview the documentation.

This build script is powered by FAKE; please see their API documentation should you need to make any changes to the build.fsx file.

About

Akka.NET cluster management, bootstrapping, and more.

Resources

Code of conduct

Contributing

Stars

31 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages