Thanks for the tips. I already tried some async NIO based HTTP client from Apache, but I was rather unsuccessful achieving the results I was expecting (maybe because it's my first time with NIO and I don't know how to use it properly 😀). I will give it one more try with the OkHttp and I will see 🙂. Anyway maybe it will be a good idea if one day e.g. Roman could write a blog post with an example showing how to do it properly. It is nice that you can launch milion coroutines at once not killing your RAM, but this use case feels to me rather fictional than what I would want to do in reality. Mostly what I want to paralelize are IO operations (especially network ones). So let's say if we had a limited thread pool size, it would be great if this article could demonstrate what benefits can we gain while using coroutines compared to threads. Can we launch more IOs simultaneously? Will it take less RAM? (and how much less if it does?) Etc... the only noticable benefit I've seen so far is that a couroutine will launch faster, so I can imagine if I had a lot of tasks which will take only little time to complete, then using coroutines could improve the throughput significantly, but is this it or can we get much more from it? 🙂 That's the question that interests me