The main application runs in a single thread and then I/O activities happen in an event loop running with a small thread pool.
Once one of those activities completes the event loop will give a signal to the main thread of the Node app and the callback will be executed.
Not sure if that helped or just confused everyone.