Skip to Content
Express and MongooseNode.js ArchitectureEvent Driven

🧩 Node.js āĻāϰ Event-Driven Architecture

Node.js āĻāĻ•āϟāĻŋ Event-Driven, Non-Blocking I/O Model āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

đŸŽ¯ Event-Driven Architecture

Event-Driven Architecture āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹, āϝ⧇āĻ–āĻžāύ⧇ āϏāĻŦ āĻ•āĻŋāϛ⧁āχ āϘāϟāύāĻžāϕ⧇āĻ¨ā§āĻĻā§āϰāĻŋāĻ•āĻ­āĻžāĻŦ⧇ (event-based) āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻšā§ŸāĨ¤

āϧāϰ⧁āύ, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻžāϜāĻŋāύāϕ⧇ āĻĻā§‹āĻ•āĻžāύ⧇ āĻĒāĻžāĻ āĻžāϞ⧇āύ āϚāĻŋāĻĒāϏ āφāύāϤ⧇āĨ¤

āφāĻĒāύāĻžāϰ āĻ•āĻžāϜāĻŋāύ āĻĻā§‹āĻ•āĻžāύ āĻĨ⧇āϕ⧇ āϚāĻŋāĻĒāϏ āĻ•āĻŋāύ⧇ āĻĢāĻŋāϰ⧇ āĻāϏ⧇ āĻĻāϰāϜāĻžā§Ÿ āĻ•ā§œāĻž āύāĻžā§œāϞ āĻŦāĻž āĻŦ⧇āϞ āĻĻāĻŋāϞ —

āφāĻĒāύāĻŋ āϏ⧇āχ āϘāϟāύāĻžāϟāĻŋ āĻļ⧁āύāϞ⧇āύ (event listen āĻ•āϰāϞ⧇āύ) āĻāĻŦāĻ‚ āĻĻāϰāϜāĻž āϖ⧁āϞ⧇ āĻĻāĻŋāϞ⧇āύ (response/handle āĻ•āϰāϞ⧇āύ)āĨ¤

Node.js-āĻāĻ“ āĻ āĻŋāĻ• āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻšā§Ÿ:

  • āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ event emit āĻšā§Ÿ,
  • āϤāĻžāϰāĻĒāϰ āϏ⧇āχ event āϕ⧇ listen āĻ•āϰāĻž āĻšā§Ÿ,
  • āĻāĻŦāĻ‚ āĻļ⧇āώ⧇ āϏ⧇āχ āχāϭ⧇āĻ¨ā§āϟ āĻ…āύ⧁āϝāĻžā§Ÿā§€ callback āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ response āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§ŸāĨ¤

āĻāχ āχāϭ⧇āĻ¨ā§āϟ-āϕ⧇āĻ¨ā§āĻĻā§āϰāĻŋāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āĻĢāϞ⧇ Node.js āĻšā§Ÿā§‡ āĻ“āϠ⧇ āĻĻā§āϰ⧁āϤ, efficient āĻāĻŦāĻ‚ highly responsive āĻāĻ•āϟāĻŋ runtimeāĨ¤

screencapture-web-programming-hero-level2-batch-5-video-level2-batch-5-12-4-high-level-overview-of-node-js-architecture-2025-06-14-09_46_00 (1) (1).png

📌 āĻŽā§‚āϞ āϧāĻžāϰāĻŖāĻž:

  • Node.js āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻŦ āĻ•āĻžāϜāϕ⧇ Event āφāĻ•āĻžāϰ⧇ āϧāϰ⧇āĨ¤
  • āĻĒā§āϰāϤāĻŋāϟāĻŋ Event āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ Callback Function āĻĨāĻžāϕ⧇āĨ¤
  • āϕ⧋āύ⧋ āĻ•āĻžāϜ (āϝ⧇āĻŽāύ āĻĢāĻžāχāϞ āĻĒāĻĄāĻŧāĻž, API āĻ•āϞ) āĻļ⧁āϰ⧁ āĻ•āϰ⧇ Node.js āĻ…āĻ¨ā§āϝ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĨāĻžāϕ⧇āĨ¤
  • āĻ•āĻžāϜ āĻļ⧇āώ āĻšāϞ⧇ Event Trigger āĻšāϝāĻŧ → Callback āϚāϞ⧇āσ

đŸŽ¯ āωāĻĻāĻžāĻšāϰāĻŖ:

fs.readFile('file.txt', (err, data) => { console.log(data.toString()); }); console.log("Reading file...");

Output:

Reading file... [File content]

👉 āĻāĻ–āĻžāύ⧇ readFile āĻ•āĻžāϜāϟāĻŋ async → āĻĢāĻžāχāϞ āĻĒāĻĄāĻŧāĻž āϚāϞāĻžāĻ•āĻžāϞ⧀āύ āĻ…āĻ¨ā§āϝ āĻ•āĻžāϜ (console log) āφāϗ⧇ āĻšāϝāĻŧāĨ¤


🔄 Event Loop āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?

Node.js āĻāϰ core-āĻ Event Loop āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻŽā§‚āϞāϤ JS āϕ⧋āĻĄā§‡āϰ Execution āĻāĻŦāĻ‚ Callback āϗ⧁āϞ⧋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇āĨ¤ Event Loop is called the heart of node.js.

📚 Event Loop-āĻāϰ āϧāĻžāĻĒāϏāĻŽā§‚āĻš:

  1. Call Stack: JS āϕ⧋āĻĄ āĻāĻ• āĻāĻ• āĻ•āϰ⧇ Stack-āĻ āĻĸā§‹āϕ⧇ āĻāĻŦāĻ‚ Execute āĻšāϝāĻŧāĨ¤
  2. Web APIs / Node APIs: Async āĻ•āĻžāϜāϗ⧁āϞ⧋ (I/O, Timer, Network) āĻāĻ–āĻžāύ⧇ āϝāĻžāϝāĻŧāĨ¤
  3. Callback Queue: Async āĻ•āĻžāϜ āĻļ⧇āώ⧇ Callback āĻāĻ–āĻžāύ⧇ āĻāϏ⧇ āϜāĻŽāĻž āĻšāϝāĻŧāĨ¤
  4. Event Loop:
    • Stack āĻ–āĻžāϞāĻŋ āĻĨāĻžāĻ•āϞ⧇, Callback Queue āĻĨ⧇āϕ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻāύ⧇ Stack-āĻ āĻĸā§‹āĻ•āĻžāϝāĻŧāĨ¤
    • āĻāĻ­āĻžāĻŦ⧇ Non-Blocking Execution āĻšāϝāĻŧāĨ¤

📊 Visualization:

_- visual selection (7).png


Last updated on