# IStreamQueueBalancer

Package: [Microsoft.Orleans.Streaming](/orleans/docs/api/csharp/microsoft.orleans.streaming/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Streaming)

```csharp
public interface IStreamQueueBalancer
```

The stream queue balancer is responsible for load balancing queues across all other related queue balancers. It notifies any listeners (

```csharp
IStreamQueueBalanceListener
```

) of changes to the distribution of queues. Method GetMyQueues, SubscribeToQueueDistributionChangeEvents, and UnSubscribeFromQueueDistributionChangeEvents will likely be called in the IStreamQueueBalanceListener's thread so they need to be thread safe

## Methods

- [GetMyQueues](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreamqueuebalancer/methods/getmyqueues-848c5cd4/)
- [Initialize(IStreamQueueMapper)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreamqueuebalancer/methods/initialize-orleans-streams-istreamqueuemapper-e32cea5b/)
- [Shutdown](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreamqueuebalancer/methods/shutdown-79a490e8/)
- [SubscribeToQueueDistributionChangeEvents(IStreamQueueBalanceListener)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreamqueuebalancer/methods/subscribetoqueuedistributionchangeevents-orleans-streams-istreamqueuebalancelist-909ab5b0/)
- [UnSubscribeFromQueueDistributionChangeEvents(IStreamQueueBalanceListener)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreamqueuebalancer/methods/unsubscribefromqueuedistributionchangeevents-orleans-streams-istreamqueuebalance-a3b1cbec/)
