title: Akka Cluster, Cluster Sharding and Cluster singleton use cases
body: <p>I am writing an Akka application and I want to use the Akka Cluster feature that Typsafe provides. I am trying to understand the main difference between Akka Cluster, Akka Cluster Singleton and Akka Cluster Sharding. To me, they seem to be providing similar things.</p>
  
  <p>In my scenario I want to have a cluster that will have:</p>
  
  <ul>
  <li>Stateless actors that could live in any machine (I will have a pool of them)</li>
  <li>Stateless actors that I want them to live in specific machines</li>
  <li>Stateful actors that could live in any machine but I need just one instance of them across the whole cluster and being able to restart the actor with its previous state if it dies.</li>
  </ul>
  
  <p>Based on what I have read I would need Akka Cluster for the first kind, Akka Cluster Singleton for the second kind and Akka Cluster Sharding for the third kind. Is my assumption correct? I am looking for some guidance as well as any example online if you know any.</p>