JSFoo 2013

All about being creative with JavaScript

Karan Misra

@kid0m4n

node.jsfoo: Internals Explained

Submitted Aug 1, 2013

To introduce the audience to the various nuances of doing async programming right. To break that mental barrier in understanding the internal “tick-tock” of the node.js engine

Outline

A lot of us probably have done callback based aync coding. Some of us might even have dabbled in promises (Q), etc.

However, do we really understand what makes async tick? When is the callback going to be executed? What is process.nextTick()? Why does JavaScript lack the sleep(x) method. How are threads involved in this whole party. Can we avoid callbacks altogether? What idiomatic patterns can help keep sanity in a large node.js codebase.

Having a deep understanding of the same will allow us to tackle node.js performance issues as they crop up (and they will!) I will end the talk by demonstrating a real life scenario on the optimizations we had to do to remove the ORM bottleneck from a node.js application which absolutely had to scale

Requirements

Inquisitiveness to learn the internals of node.js; of what makes the clock tick

Speaker bio

Having spent the last 8 months in a real world node.js project, this fervent Rubyist has developed a deep appreciation of concurrency and all things async.

Getting the first enterprise grade node.js application at ThoughtWorks to production took some doing; adopting idioms which seemed foreign at first, but have become second nature now.

A pragmatist at heart, I always strive to understand the internal workings of a system so as to be able to take the best design decision possible given the circumstances. This journey required me to dig deep into node.js as we not only had to keep the code maintainable, we had to keep it performant at any cost.

Having said all that, I believe I will do justice to the topic proposed; its going to be helluva 15 minutes.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more