Wie kann die Parallelität von flatMap begrenzt werden?

Ich versuche, mit RxJS ein Skript für die Verarbeitung von mehreren hundert Protokolldateien zu schreiben, von denen jede etwa 1 GB groß ist. Das Grundgerüst des Skripts sieht aus wie

Rx.Observable.from(arrayOfLogFilePath)
.flatMap(function(logFilePath){
   return Rx.Node.fromReadStream(logFilePath)
   .filter(filterLogLine)
})
.groupBy(someGroupingFunc)
.map(someFurtherProcessing)
.subscribe(...)

Der Code funktioniert, aber beachten Sie, dass der Filterungsschritt aller Protokolldateien gleichzeitig gestartet wird. Aus Sicht der Dateisystem-E / A-Leistung ist es jedoch vorzuziehen, eine Datei nach der anderen zu verarbeiten (oder zumindest die Parallelität auf einige wenige Dateien zu beschränken, anstatt alle Hunderte von Dateien gleichzeitig zu öffnen). Wie kann ich diesbezüglich "funktional reaktiv" umsetzen?

Ich hatte an Scheduler gedacht, konnte aber nicht herausfinden, wie es hier helfen kann.