title: Blocking calls in Akka Actors
body: <p>As a newbie, I am trying to understand how actors work. And, from the documentation, I think I understand that actors are objects which gets executed in sync mode and also that actor execution can contain blocking/sync method calls, e.g. db requests</p>
  
  <p>But, what I don't understand is that if you write an actor that has some blocking invocations inside (like a blocking query execution), it will mess up the whole thread pool (in the sense that cpu utilization will go down, etc.), right ? I mean, from my understanding, there is no way for JVM to understand whether it can switch that thread to someone else, if/when the actor makes a blocking call.</p>
  
  <p>So, given the nature of concurrency, shouldn't it be obvious that Actors should not be doing any blocking calls, ever? </p>
  
  <p>If that is the case, what is the recommended way of doing a non-blocking/async call, let's say a web service call that fetches something and sends a message to another actor when that request is completed? Should we simply use something like within the actor:</p>
  
  <p>future map { response => x ! response.body } </p>
  
  <p>Is this the proper way of handling this?</p>
  
  <p>Would appreciate it if you can clarify this for me.</p>