It is often very useful to get familiar with strengths and bottlenecks of a programming language if using or planning to use it in practice, and Node.js is not an exception here. This presentation is focusing on the introduction of aspects that make Node.js asynchronous. In general, asynchrony is a broadly used paradigm in software engineering and Node.js has a particularly interesting set of structural pieces and rules for achieving it.
Agenda:
1. Basic concepts of Node Js and asynchrony
• A little bit about how JavaScript works (V8, Call Stack, Heap...)
• Traditional asynchrony in programming (multi-threading and what cons and pros it bring)
• What is the situation with threads in Node Js?
2. Node Js and LIBUV
• LIBUV, Event Loop and Callback queue - what are they?
• A little bit more about callbacks
• Some visualizations of LIBUV in action
3. Using multiple threads with Node Js
• What is the working_threads module and how does it work?
• How do worker threads communicate with each other?