# Self-optimizing distributed actors in Orleans
Draft
Published: 2018-10-08
Orleans Optimization
Grains in Orleans are location-transparent: it’s the job of the Orleans runtime to decide where in your cluster of hosts to place each grain your application needs to operate at any point in time. The Orleans runtime is responsible for balancing load across your hosts, activating and deactivating grains depending on whether they are likely to receive messages in the near future (akin to a cache), detecting faulty hosts and evicting them, etcetera.
Grains are the building block for any Orleans application. A grain is If you are new to Orleans, grains are distributed, fault tolerant objects which are managed by the runtime so that they are always accessible. When you