Ответ
Node.js использует event-driven, non-blocking I/O модель, основанную на event loop. Это single-threaded подход, где операции ввода-вывода выполняются асинхронно через callbacks, promises или async/await.
Пример с EventEmitter (паттерн Observer):
const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.on('message', (data) => {
console.log('Received:', data);
});
emitter.emit('message', 'Hello, Node.js!');
Для работы с потоками (streams) используется backpressure для контроля скорости передачи данных.
Если нужна гарантированная доставка (например, RabbitMQ/Kafka), используют message brokers с подтверждениями (ACKs).
В веб-сокетах (WebSocket) применяется full-duplex связь в реальном времени.