핸들과 요청의 구분
핸들은 연결이나 타이머처럼 활성 상태를 유지하며 사건을 처리하는 객체를 나타낸다. 요청은 쓰기나 이름 조회처럼 비교적 짧게 끝나는 개별 작업을 나타낸다. 두 추상화를 이벤트 루프와 함께 사용해 입출력의 상태와 동작을 구성한다.
루프의 실행 스레드
이벤트 루프는 하나의 스레드에 연결되며 네트워크 입출력도 그 루프의 스레드에서 처리한다. 플랫폼의 epoll과 kqueue 및 IOCP 같은 기능을 이용해 사건을 확인하고 콜백을 실행한다. 여러 루프를 사용할 수 있지만 각 루프는 서로 다른 스레드에서 실행해야 한다.
스레드 풀로 다루는 작업
파일 입출력과 일부 DNS 함수 및 사용자가 지정한 작업은 공통 스레드 풀에서 처리한다. 따라서 비동기 인터페이스를 제공한다고 모든 작업의 내부 실행 방식이 같은 것은 아니다. 파일 변경 감시와 프로세스 및 신호 같은 주변 기능도 제공한다.