title: Microsoft Orleans - How to activate X reminder grains in different silos?
body: <p>Is there a way in Orleans to make sure X reminder grains of same type are hosted on different silos?</p>
  
  <p>Motivation:
  I want to use Orleans in an Azure cloud service that runs background processing and should be highly resilient to failures and to silos downtime due to in-place upgrade. In my scenario there is a need for a grain that is always active doing it's job using timers, and if it’s hosting silo goes down then it should be activated again on another silo in few seconds. During an Azure cloud service upgrade, the instances are divided into 5 groups, one group is upgraded at a time, which means during an upgrade I always have 20% of my instances shut down, which makes it challenging to have an always active grain. I consulted with Sergey Bykov and we came up with several ideas, one of them was introducing “keep alive” grains that their purpose is to ping the “always active” grain to make sure it’s active. In order to make that work during upgrades, I need to make sure there is always at least one “keep alive” grain that its hosting silo isn’t in the same upgrade group as the silo that hosts the “always active” grain, so that “keep alive” grain will be able to make the “always active” grain be re-activated on another silo that isn’t shutdown at that moment.</p>