Callback paradigm has not been used in node development for 3-4 years at this point.
return someHttpCall()
.then(response => someOtherHttpCall(response))
// Do 2 async operations in Parallel:
.then(response => Promise.join(
someCacheThing(response),
someDBThing(response)
))
.spread((cacheResponse, dbResponse) => sendBackToClient());
This isn't callback hell. Without creating or managing threads, I have established serial as well as an example of branched concurrent logic that is entirely nonblocking. Every promise is handled as a try catch, so error handling can be done at the end of the chain with a single `.catch`.Clustered express application puts the performance well within what you would expect from Go/Phoenix, all of which are operating at an order of magnitude above Python/Ruby.