Node.js phản ứng với events thay vì chạy tuần tự — đăng ký callback, tiếp tục xử lý việc khác, callback được gọi khi I/O hoàn thành; block khi chạy heavy sync computation.
- Event-driven architecture nghĩa là code phản ứng với events thay vì chạy tuần tự từ trên xuống.
- Trong Node.js, thay vì blocking chờ đợi I/O xong, bạn đăng ký callback và Node.js tiếp tục xử lý việc khác — khi I/O hoàn thành, event được emit và callback được gọi.
Ví dụ cụ thể: server.on('request', (req, res) => {...}) — server không blocking chờ từng request mà lắng nghe event 'request' liên tục.
Pitfall: nếu bạn chạy heavy computation đồng bộ (vòng lặp triệu lần), event loop bị block và mọi requests khác phải chờ — đây là lý do Node.js không phù hợp cho CPU-intensive work.