I wrote a similar article but for Ruby: https://www.codeotaku.com/journal/2018-06/asynchronous-ruby/...
Yes, it's a good model for many use cases.
One thing I wondered about Ruby, is it really necessary to have the `await` keyword?
var task1 = someAsyncTask1() var task2 = someAsyncTask2() await Promise.all([task1, task2])