Closed
Description
I posted requirements list for getting async_hooks
into stable a while ago (nodejs/node#14717 (comment)). This is a very similar list.
Internal Technical
- Clarify breaking changes necessary for better performance (issue: Performance impact of async_hooks benchmarking#181)
- Remove
promise
object fromPromiseWrap
(PR: async_hooks: remove promise object from resource node#23443) - Use a "
MicrotaskWrap
" instead ofPromiseWrap
(issue: Proposal for reworking promise integration into async_hooks #389)
- Remove
- Setting up the benchmark suite to be run with and without
async_hooks
and see that there is only a small measurable difference given our tolerance. - Deprecate
runInAsyncIdScope
(issue: Remove async_hooks runInAsyncIdScope API node#14328, PR: async_hooks: deprecate undocumented API node#16972) - Deprecate
setTriggerId
(issue: Remove async_hooks setTrigger API node#14238, PR: async_hooks: deprecate undocumented API node#16972)- Implement internal replacement that we can optionally expose (PR: Refactor async_hooks initTriggerId node#17273)
- Deprecate Sensitive Embedder API (issue: Remove async_hooks Sensitive/low-level Embedder API node#15572, PR: async_hooks: deprecate undocumented API node#16972)
- Separate internal API from the external API (PR: async_hooks: deprecate undocumented API node#16972).
- Remove deprecated API (PR: async_hooks: remove deprecated API node#17147).
- Opt-out
async_hooks
state validation in v9.x. (PR: async_hooks: enable runtime checks by default node#16318) - Make sure all nodecore uses of
MakeCallback
have anasync_context
. - Integrate
async_hooks
intoNAN
(issue: Integrate C++ AsyncHooks Embedder API with native abstraction node#13254). - Integrate
async_hooks
inton-api
(issue: Integrate C++ AsyncHooks Embedder API with native abstraction node#13254).
Internal Non-Technical
- Specify whether a
triggerAsyncId
change will be asemver-major
,semver-minor
orsemver-patch
. - Identify "tolerance level" of perf impact of async-hooks, especailly regarding promises.
- Is Async Hooks exposing the right logical model? (issue: How to deal with ambgious contexts for promise then callbacks #143)
External Non-Technical
- major APM vendor that uses
async_hooks
(N/Solid, New Relic, Elastic APM) - npm modules with at least 5000 DL/month based on
async_hooks
(https://www.npmjs.com/package/trace & https://www.npmjs.com/package/cls-hooked)
After Stable
- Deprecate
MakeCallback
withoutasync_context
(PR: src: deprecate legacy node::MakeCallback node#18632)