I find that if I instantiate multiple worker threads with the intent of pulling contract details on several contracts concurrently, even though I can submit multiple requests instantly, I only receive one symbol at a time in the same order that the requests were sent. For example, if I request option contract details on IBM, AMZN, and FB, I can make those requests nearly instantly and then I'll get many callbacks returning data for IBM, then AMZN, and then FB. If the service was truly concurrent, I would expect to see the callbacks mixed instead of receiving callbacks for one request at a time. Has anyone managed to pull contract details concurrently through IB Java API? The API is obviously geared for concurrency, but not sure if that applies to requesting contract details.