Orleans.Balancer is a library for automatically balancing the number of active Grains in an Orleans distributed system. It allows you to set limits on the number of active Grains, and will automatically deactivate Grains if those limits are reached. It can also perform rebalancing of Grain activations between silos to ensure evenly distributed.
Orleans is a distributed systems platform that makes it easy to build highly scalable, low-latency applications. However, managing the number of active Grains in an Orleans system can be challenging, especially in environments with unpredictable workloads. Orleans.Balancer solves this problem by providing automatic control over the number of active Grains, as well as tools for rebalancing activations between silos. This ensures that your Orleans applications have the resources they need to handle increased workloads without manual intervention. Use it together with https://github.com/managedcode/Keda
To use Orleans.Balancer, you will need to have an Orleans distributed system set up. Once you have that, you can install Orleans.Balancer using the provided NuGet package.
Orleans.Balancer is used by creating an instance of the Orleans.Balancer.Balancer class and passing in the desired settings. The Balancer class provides methods for controlling the number of active Grains, as well as for performing rebalancing operations.
Install package ManagedCode.Orleans.Balancer
siloBuilder.UseOrleansBalancer(o => { });
We welcome contributions to Orleans.Balancer! If you have an idea for a new feature or have found a bug, please open an issue on GitHub.