The Dangerous Cliffs of Node.js

Because production-ready is not easy!

Scott Nonnenberg

github.com/scottnonnenberg/dangerous-cliffs-of-nodejs

'space'/arrow keys/swipe to navigate, 'esc' to zoom out, 's' for speaker notes

Why me?

Walmart Labs

Nordstrom Innovation Lab

HaikuDeck

MuleSoft

Classic ASP

C++

Java

.NET

iOS

Ruby on Rails

Why this topic?

The gap

How about a hike?

Crashes

Demo: Crashes

Benefit?

Impact

Deployment

Hangs

Demo: Hangs

Benefit?

Detection

non-server apps

Event loop unavailability

Demo: Event loop

Benefit?

Prevention

Detection

Error from

async call

Demo

Benefit?

Debuggability

prevention

impact mitigation

detection

debuggability

Better node.js understanding?

Hammering

remote

services

Thanks!

Questions?

Creative Commons Images

Know your libraries!

  • mongodb - connection pool, default size of 5
  • pg - connection pool, default size of 10
  • mysql - connection pool, default size of 10
  • redis - queues up extra commands