title: Akka.net load balancing and span out processing
body: <p>I am looking to build a system that is able to process a stream of requests that needs a long processing time say 5 min each. My goal is to speed up request processing with minimal resource footprint which at times can be a burst of messages.  </p>
  
  <p>I can use something like a <code>service bus</code> to queue the request and have multiple process (a.k.a Actors in akka) that can subscribe for a message and start processing. Also can have a watchdog that looks at the queue length in the service bus and create more actors/ actor systems or stop a few.</p>
  
  <p>if I want to do the same in the Actor system like <code>Akka.net</code> how can this be done. Say something like this:</p>
  
  <ul>
  <li><p>I may want to <strong>spin up/stop</strong> new Remote Actor systems based on my request  queue length</p></li>
  <li><p>Send the message to any one of the <strong>available actor</strong> who can start processing without having to check who has the bandwidth to process on the sender side. </p></li>
  <li>Messages should not be lost, and if the actor fails, it should be passed to next available actor.</li>
  </ul>
  
  <p>can this be done with the Akka.net or this is not a valid use case for the actor system. Can some one please share some thoughts or point me to resources where I can get more details.</p>