A. Every API of Node js are asynchronous.
B. Node being a single thread, and uses async function calls to maintain the concurrency.
C. Node thread keeps an event loop and whenever any task get completed, it fires the corresponding event which signals the event listener function to get executed.
D. All of the above.