The PR https://github.com/nodejs/node/pull/16222, contains the first step by @vdeturckheim to remove `domain` from the deep layers of nodecore and implement it on top of `async_hooks`. This PR just landed, thus I'm opening this issue to discuss the next steps. - [Deprecate and remove `.domain` support from `MakeCallback`](https://github.com/nodejs/node/blob/97ba69f91543f89d389a4f3fef57c5c6c734df34/src/node.cc#L855L882). Implementers should use `async_context`. What will our depreciation and removal strategy for this be? _Note: we would like to ultimately remove this as it adds quite a bit of extra complexity._ - [x] Deprecate `.domain` support from `MakeCallback` (PR: https://github.com/nodejs/node/pull/17417) - [ ] Remove `.domain` support from `MakeCallback` - [x] [Remove special domain code in exception handling](https://github.com/nodejs/node/blob/97ba69f91543f89d389a4f3fef57c5c6c734df34/src/node.cc#L784L851). ~~It is unclear what the migration strategy for this is.~~ (PR: https://github.com/nodejs/node/pull/17159) - [x] [Remove domain integration in events](https://github.com/nodejs/node/blob/283b949404745314801462f48e379397545bdde2/lib/events.js#L152L168). (PR: https://github.com/nodejs/node/pull/17403, PR: https://github.com/nodejs/node/pull/17588) - Check for leftovers. Examples: - [x] [timers](https://github.com/nodejs/node/blob/4503da8a3a3b0b71d950a63de729ce495965f6ea/lib/timers.js#L266L275) (PR: https://github.com/nodejs/node/pull/17880) - [x] [env declarations](https://github.com/nodejs/node/blob/4503da8a3a3b0b71d950a63de729ce495965f6ea/src/env.h#L274) (PR: https://github.com/nodejs/node/pull/18291) - [x] Track context with `async_hooks` (PR: https://github.com/nodejs/node/pull/16222) /cc @addaleax @vdeturckheim