এটি একধরনের প্রোগ্রামিং স্টাইল বা ধরন যেখানে প্রোগ্রামের ফ্লো বা এগিয়ে চলার ধাপ গুলো কিছু ইভেন্টের উপর নির্ভর করে। ইভেন্ট মানে কিছু ঘটনা, যেমন - মাউস ক্লিক, কি প্রেস, নেটওয়ার্কে কানেকশনের জন্য রিকোয়েস্ট, সেই রিকোয়েস্টের সাপেক্ষে রেসপন্স, এমনকি সেন্সর আউটপুট বা অন্য একটি প্রোগ্রাম(প্রসেস/থ্রেড) থেকে ম্যাসেজ পাওয়া ইত্যাদি। এতোটুকু শুনে নিশ্চয়ই মনে হচ্ছে যে, এরকম কাহিনী তো যেকোনো GUI অ্যাপ্লিকেশনেই থাকে যেমন মোবাইল অ্যাপ, ডেক্সটপ অ্যাপ এমনকি ব্রাউজারেও তো ঠিক এভাবেই আমরা কাজ করে থাকি। ঠিক তাই, Node.js বস্তুত এই ওয়ার্কিং প্রিন্সিপালকেই সার্ভারে নিয়ে গেছে এবং দেখা গেছে এই টেকনিক নন ব্লকিং ইনপুট/আউটপুট ইউটিলাইজ করার মাধ্যমে অনেক বেশি পরিমাণে কনকারেন্ট কানেকশন হ্যান্ডেল করার ব্যবস্থা করে দেয়। তাহলে এখন একটু বোঝার চেষ্টা করি নন-ব্লকিং ইনপুট/আউটপুট কি জিনিষ এবং এটা কেনই বা দরকারি।