Advertisement · 728 × 90
#
Hashtag
#OPenJSWorld21
Advertisement · 728 × 90

New stable features in #Nodejs

➡️ AbortController
➡️ crypto.randomUUID()
➡️ npm diff
➡️ Source map v3 support (stable as of v15.12.0)
➡️ Timers Promises API (stable as of v16.0.0)
➡️ RegExp match indices (in V8 9.0)

#OpenJSWorld21 https://t.co/TVgNxxjEVx

0 0 0 0

Experimental Core Modules in #nodejs

... continued
📦 Policies
📦 Buffer, Events, VM, Workers...

#OpenJSWorld21 https://t.co/sRkxixwhBB

0 0 1 0

Experimental Core Modules in #nodejs

... continued
📦 WebCrypto API
📦 WebAssembly System Interface (WASI)
📦 ECMAScript modules
📦 Top-level await

#OpenJSWorld21 https://t.co/MIDFfhJZ3F

0 0 1 0

Experimental Core Modules in #nodejs

📦 Async Hooks (ft. AsyncLocalStorage)
📦 Diagnostics Channel
📦 Inspector
📦 Trace events
... continued

#OpenJSWorld21 https://t.co/OqsyNnHnxl

0 0 1 0

Deprecations in #Nodejs

➡️ Documentation: expressed in Node.js API docs, may trigger a runtime warning when launched with --pending-deprecation flag
➡️ Runtime: generates a process warning, throws by default in Node.js v15.0+

#OpenJSWorld21 https://t.co/L859NGVyI1

0 0 1 0

Stability Indices in #nodejs:

0️⃣: Deprecated.
1️⃣: Experimental.
2️⃣: Stable.
3️⃣: Legacy.

More details: nodejs.org/api/documentation.html

#OpenJSWorld21 https://t.co/ey2FniqQp0

0 0 1 0

#node release schedule:

📦 Current - most of the non-major (non-breaking) changes
📦 Active LTS - New features, bug fixes, and updates audited by the LTS team
📦 Maintenance - Critical bug fixes and security updates.
More details: https://t.co/maZ7EQIgZQ

#OpenJSWorld21 https://t.co/TiHgcFsKZa

0 0 1 0

Current Strategic Initiatives in #Nodejs

⛳ Core Promise APIs
⛳ V8 Currency
⛳ QUIC/HTTP3
⛳ Startup performance
⛳ Build resources
⛳ Future of Build Toolchain
⛳ i18n
⛳ Mentorship
⛳ Node.js Collection
⛳ Examples
⛳ Outreach
⛳ Website Redesign

#OpenJSWorld21 https://t.co/FQM5eDXN2k

0 0 1 0

Working Groups and Teams in #nodejs

🏟️ Build WG
🏟️ Diagnostics WG
🏟️ Docker WG
🏟️ i18n WG
🏟️ Issue Triage team
🏟️ Loaders team
🏟️ next-10 team
🏟️ Release WG
🏟️ Package Maintenance WG
🏟️ Streams WG

#OpenJSWorld21 #javascript https://t.co/BhPa7D3biA

0 0 1 0

#OpenJSWorld21 breakout talk: Node.js: The new and the experimental by @BethGriggs_ from @RedHat

Node.js core is the sum of the interests and efforts of the contributors
Beth explains the pipeline and what's next

#OpenSource #nodejs

Watch on YouTube at https://t.co/898QFAf2ob https://t.co/Ef

0 0 1 0

In the rest of the talk, Guilherme goes through a few examples observed in production and how metrics helped in finding the root cause and fixing them.

View them on GitHub at https://github.com/ghermeto/openjs-world-2021

#OpenJSWorld21 #Nodejs #javascript

0 0 0 0

Metric: Process restarts

This metric tells when application has crashed, and process had to be restarted.

#OpenJSWorld21 #nodejs #javascript https://t.co/lDtTmWtay5

0 0 0 0

Metric: Inflight requests

This metric measures how many concurrent requests your app is handling. It helps finding handler or middleware leak.

#OpenJSWorld21 #nodejs #javascript https://t.co/MSS1c18lMt

0 0 1 0

Metric: Request latency

How long an average request is taking. This metric needs to be viewed in percentiles, as you examine each subset of your customers - p50, p90, p99, p99.9

#OpenJSWorld21 #nodejs #javascript https://t.co/SQZYHlihJE

0 0 1 0

Metric: Request rate (rps)

How many requests that app can receive in given amount of time. Must have metric for any application.

Increase in this metric means increase in CPU utilization (expected), as more requests need more CPU.

#OpenJSWorld21 #nodejs #javascript https://t.co/mpvZ6awZOs

0 0 1 0

Metric: Heap Utilization

High heap utilization usually means there's a memory leak

#OpenJSWorld21 #nodejs #javascript https://t.co/lrBosNCz01

0 0 1 0

Metric: Event loop lag

This chart is used along with CPU utilization. Increased event loop lag means it takes longer for next event loop tick, and request rate will drop.

#OpenJSWorld21 #nodejs #javascript https://t.co/XN5MnM8XPG

0 0 1 0

Metric: Process CPU Utilization

Common causes for high CPU usage:
➡️ Synchronous code blocking event loop
➡️ Process restarts
➡️ Pressure on the garbage collector

#OpenJSWorld21 #nodejs #javascript https://t.co/8muGyH9a8V

0 0 1 0

Guilherme talks about metrics-driven development feedback-loop:

🔁 Write code
🔁 Load test or Canary
🔁 Gather metrics
🔁 Analyze the results

#OpenJSWorld21 https://t.co/jXdRqJugpU

0 0 1 0

#OpenJSWorld21 breakout talk: "Observing Node.js: Using metrics to improve your application performance" by @ghermeto from @netflix

Watch it on YouTube at https://www.youtube.com/watch?v=XokTvf9WlXQ

#OpenSource #javascript #nodejs https://t.co/CfyI3oNjch

0 0 1 0

When not to use #WebAssembly

➡️ App is not compute-intensive enough
➡️ App is too compute-intensive
➡️ Adds too much complexity to your codebase & team

#OpenJSWorld21 #javascript https://t.co/PHz37TMCrx

0 0 0 0

#WebAssembly with SIMD benchmarks are every close to native!

Check out the SIM proposal in https://t.co/ZNV89Csoqm

➡️ Currently limited to 128-bit SIMD operations
➡️ For most browsers, need flag or origin trial
➡️ Enabled by default in Chrome 91

#OpenJSWorld21 #javascript https://t.co/78W8F7dlHK

0 0 1 0

#WebAssembly tools useful for data intensive apps:

➡️ Threads: WebWorkers, SharedArrayBuffer
➡️ SIMD: processes multiple data in a single CPU instruction

#OpenJSWorld21 #javascript https://t.co/MSNGHCIgvx

0 0 1 0

Case Study 2: http://genomeribbon.com

GenomeRibbon lets you explore complex arrangements in genome in the browser.

It used existing tools compiled to #WebAssembly:
➡️ samtools (C)
➡️ noodles (Rust)

#OpenJSWorld21 #javascript https://t.co/T5femwy1Hf

0 0 1 0

Case Study 1: http://fastq.bio

FastQ web app lets user input DNA sequencing data, and rapidly evaluate the quality of the data inside the browser.

It used existing tools compiled to #WebAssembly:
➡️ seqtk (C)
➡️ fastp (C++)
➡️ FastQC (Java)

#OpenJSWorld21 #javascript https://t.co/EBPHklth5B

1 0 1 0

#WebAsssembly usage is slowly increasing over the years!

Data from State of JavaScript Survey 2020.stateofjs.com/en-US/features/other-fea...

#OPenJSWorld21 #javascript https://t.co/FkF4ExHtHx

0 0 1 0

#WebAssembly is supported in 92.9% of the browser versions used on the web!

#OpenJSWorld21 #javascript https://t.co/R0tdOY3kKd

0 0 1 0

Why #WebAssembly?

➡️ Code Reuse: Google Earth, Figma, AutoCAD, sql.js
➡️ Performance: TensorFlow.js, 1Password, eBay, GenomRibbon
➡️ Portability: Cloudflare, Fastly, Wasmtime, Node, Deno, Wasm3

#OpenJSWorld21 #javascript https://t.co/OoI4gX86tZ

0 0 1 0

What is #WebAssembly?

➡️ New language that runs in the browser
➡️ Compilation target for C/C++/Rust/...

#OpenJSWorld21 #javascript https://t.co/JlRJPdUlWl

0 0 1 0

#OpenJSWorld21 breakout talk: Hit the ground running with WebAssembly by @RobAboukhalil from @Invitae

The talk introduces WebAssembly and covers upcoming features such as threads and SIMD, and use cases where WebAssembly shines!

Watch it on YouTube at https://t.co/tAxE8xGhyG https://t.co/k5Vq

0 0 1 0