$ the-wire · showcase
Node coalesces duplicate DNS lookups, batches HTTP body spans
By RepoJournal · Filed · About Node.js · Composed from the cited sources · methodology
Node.js cut redundant work in two hot paths today: duplicate dns.lookup() calls now share one getaddrinfo, and HTTP body chunks are handed to JS once per parser execute.
dns: coalesce identical concurrent lookup() requests nodejs/node
Concurrent lookups for the same (hostname, family, hints, order) now share a single getaddrinfo call instead of queuing one per caller on the libuv threadpool, which defaults to 4 threads with a slow I/O limit of 2. The PR notes that when resolution is slow, roughly 10 to 20 s per call from a misbehaving resolver, identical requests stacked behind each other and timeouts grew.
http: batch body spans per parser execute nodejs/node
Body spans are buffered in on_body() and delivered to JS once per execute() rather than once per chunk, so a many-small-chunks body no longer costs a C++ to JS call and a Buffer per chunk. Chunks in the same read now arrive as a single 'data' event on IncomingMessage; chunk boundaries were never documented, but code treating each 'data' event as a whole message could break, and the author flags...
build: drop support for Python 3.10 nodejs/node
Building Node.js now requires a Python newer than 3.10, following its end of life on 2026-10-01. Contributors on distro-default 3.10 toolchains need to upgrade before their next build.
test: cover crypto digest and HMAC caches nodejs/node
New tests pin down the crypto digest and HMAC caches: HMAC instances duplicated from the same cached context stay independent when their updates interleave, and warmed caches follow FIPS mode changes without breaking an HMAC already in progress.
feat(blog): add blog post about notable V8 changes in 27 Alpha nodejs/nodejs.org
Joyee Cheung published a blog post on notable V8 changes between Node.js 26 and 27 Alpha, with a follow-up correcting the announcement date from Nov 2 to today.
Action items