일련의 작업을 순차적으로 실행한다는 것은 하번에 하나씩 실행한다는 것을 의미한다. 목록상의 작업 결과가 다음 작업의 실행에 영향을 줄 수 있으므로 실행 순서가 중요하고 따라서 이를 보존해야 한다.

이 흐름에는 다향한 변형이 있다.
순차 실행은 직접 방식의 블로킹 API를 사용하여 구현할 때는 간단하지만, 일반적으로 비동기 CPS를 사용하여 구현할 경우 콜백 헬의 주요 원인이 된다. 아래의 코드 예제처럼 일반적인 비동기 작업 완료시 각 작업이 다음 작업을 호출하는 방법을 보여준다. 아래의 패턴은 실핼될 작업 수와 양을 미리 알고 있을 경우 완벽하게 작동한다.
function task1(callback) {
asyncOperation( () => { task2(callabck) })
}
function task2(callback) {
asyncOperation( result () => { task3(callabck) })
}
function task3(callback) {
asyncOperation( () => { callabck() })
}
일련의 비동기 작업들의 실행 순서가 중요하지 않고 단지 이런 작업들의 실행이 끝났음을 알림을 받으면 되는 경우가 있다. 이러한 상황은 다음 그리과 같이 병렬 실행 흐름을 사용하여 보다 효과적으로 처리 할 수 있다.

Node.js가 단일 스레드라고 생각하면 이상하게 들릴 수도 있으나 단 하나의 스레드만을 가지고 동시성을 달성할 수 있다는 것을 알 수 있다. Node.js의 논 블로킹 성질 덕분이다. 실제로 이 경우 병렬이라는 용어는 부적절하다. 작업들을 동시에 실행하는 것이 아니라 논 블로킹 API위에서 실행되고 이벤트 루프에 의해 인터리브 된다는 것을 의미하기 때문이다. 작업이 새로운 비동기 작업을 요청할 떄, 이벤트 루프가 새로운 작업을 실행할 수 있도록 제어를 이벤트 루프도 돌려주는데 이러한 흐름에 적절한 용어는 동시성이다. 그러나 일단 순수하게 표현하기 위해 병렬이라는 용어를 사용해서 간단하게 설명할 때 Node.js에서 논블로킹 API에 의해 내부적으로 동시 처리 되기 때문에 병렬 비동기 작업으로 실행된다. node.js에서 동기 작업은 실행을 비동기 작업으로 끼워 넣거나 또는 setTImeout 이나 setImediate로 지연시키지 않는 한 동시에 실행 될 수 없다.
멀티 스레드 환경에서는 논 블로킹 I/O를 사용하는 경우 여러 작업을 병렬로 실행할 때 문제가 발생할 수 있다. 그러나 Node.js에서 이것은 완전히 다른 이야기인데, 실제로 여러 개의 비동기 작업을 병렬로 실행하는 것은 리소스 측면에서 직관적이며 비용이 적게 든다. 이것은 Node.js의 가장 중요한 강점 중 하나인데 엄격하게 필요한 경우메나 사용하는 복잡한 기술보다 병렬화를 일반적인 방식으로 사용하기 때문이다. Node.js의 동시성 모델의 또 다른 중요한 특징은 작업 동기화 및 경쟁 조건을 다루는 방식인데 다중 스레드 프로그래밍에서 이것은 보통 잠금, 뮤텍스, 세마포어 및 모니터와 같은 구조를 사용하여 수행되며, 병렬화의 성능에 상당한 영향을 미칠 뿐만 아니라 가장 복잡한 측면 중 하나일 수 있다. Node.js에서는 모든 것이 단일 스레드에서 실행되기 때문에 일반적으로 멋딘 동기화 매커니즘이 필요하지 않다. 그러나 이것이 우리가 경쟁 조건을 가지지 않는다는 것을 의미하지 않으며, 오히려 아주 일반적일 수 있다. 문제의 근본적인 원인은 비동기 작업 호출과 그 결과 통지 사이에서 생기는 지연이 있다. 이런 것의 해결방법은 우리가 직접 다음 완료될 작업의 순서를 정하는 것이다. process.nextTick을 사용하는 것이다. 경쟁상황은 단일 스레드 환경에 있어서도 많은 문제를 일으킬 수 있는데, 경우에 따라서는 데이터 손상으로 까지 이어질 수 있고, 일시적인 특성으로 인해 디버그 하기가 매우 어렵다. 따라서 작업을 병렬로 실행할 떄 이러한 유형의 상황을 명확하게 확인해야만 한다.
종종 제어하지 않고 병렬 작업을 생성하면 과도한 부하가 발생할 수 있다. 수천 개의 파일을 읽거나 URL에 접근하거나 데이터베이스에 대한 쿼리를 병렬로 실행한다고 가정할 때 흔히 발생할 수 있는 문제의 예를 들자면 한 번에 너무 많은 파일을 열려고 할 경우 어플리케이션에서 사용할 수 있는 모든 파일 기술자를 사용하여 리소스가 부족하게 된다. 웹 어플리케이션에서는 DoS 공격으로 악용될 수 있는 취약점이 발생할 수도 있다. 이러한 모든 상황에서는 동시에 실행할 수 있는 작업의 수를 제한하는 것이 좋은데 그렇게 하면 서버의 부하에 대한 예측성을 가질 수도 있고, 어플리케이션의 리소스가 부족하지 않도록 할 수가 있다. 알고리즘은 다음과 같다.