async_hooks are 100% usable in production right now, we use it at my current gig for tracing and its had minimal impact on the services using it.
async_hooks are 100% usable in production right now, we use it at my current gig for tracing and its had minimal impact on the services using it.
Bluebird is bad for measuring async hooks because they have custom scheduler and most of the execution is done in single tick.
Overhead is for each tick, not each promise. If you have ~10 promises per request then you have N overhead if you will have 1000 promises you will get 100N overhead.
Our backend barely survived this after async hooks was just enabled and just disabling them make everything x100 faster.
Not really a long term solution.
We adapted approach with context from golang and now it works really well.
The event loop model that Node uses is easily replicated in other programming languages. It’s not a sensible default though, blocking code is better for most domains.