Node.js is an asynchronous JavaScript runtime that drives JavaScript calls. It's designed to create scalable network applications. Node.js will go to sleep if there isn't any work being done. This is in contrast with the more common concurrency model today, where OS threads are used. Thread-based networking is slow and difficult to use. Node.js users are not at risk of deadlocking the process because there are no locks. Nearly every function in Node.js performs I/O. The process never blocks unless the I/O is performed using synchronous Node.js methods standard library. Scalable systems are easy to create in Node.js because nothing blocks. Node.js is inspired by and similar to Ruby's Event Machine, and Python's Twisted. Node.js extends the event model a little further. It presents an event loop instead of a library as a runtime construct.