Looking into heterogeneous silos
We deploy an Orleans application like Distel.Host on a node that is called a silo. Multiple silos form a cluster. The nodes in the cluster share the load and grain activations. Our understanding so far is, in Orleans, a given grain can be activated on any of the nodes in the cluster to make use of the resources uniformly. These grain activations will be maintained in the grain directory. What if we wanted a specific type of grain activated on a specific node?
Consider a situation where a grain requires some special resources, or perhaps some specific hardware. It does not make sense to install that hardware in all the nodes in the cluster. Or, we want the calls to an external service from a grain to be restricted to go out from a specific node. Or, we want to split our application into microservices where a node hosts only the defined grains so that we can independently scale resources required for a grain type. This is supported by Orleans with...