title: Why are my requests handled by a single thread in spray-http?
body: <p>I set up an http server using spray-can, spray-http 1.3.2 and akka 2.3.6.
  my application.conf doesn't have any akka (or spray) entries. My actor code:</p>
  
  <pre><code>class TestActor extends HttpServiceActor with ActorLogging with PlayJsonSupport {
    val route = get { 
      path("clientapi"/"orders") { 
         complete {{
              log.info("handling request")
              System.err.println("sleeping "+Thread.currentThread().getName)
              Thread.sleep(1000)
              System.err.println("woke up "+Thread.currentThread().getName)
              Seq[Int]()
         }}
      }
    }
  
    override def receive: Receive = runRoute(route)
  }
  </code></pre>
  
  <p>started like this:</p>
  
  <pre><code>val restService = system.actorOf(Props(classOf[TestActor]), "rest-clientapi")
  
  IO(Http) ! Http.Bind(restService, serviceHost, servicePort)
  </code></pre>
  
  <p>When I send 10 concurrent requests, they are all accepted immediately by spray and forwarded to different dispatcher actors (according to logging config for akka I have removed from applicaiton.conf lest it influenced the result), but all are handled by the same thread, which sleeps, and only after waking up picks up the next request.</p>
  
  <p>What should I add/change in the configuration? From what I've seen in reference.conf the default executor is a fork-join-executor, so I'd expect all the requests to execute in parallel out of the box.</p>