I'm using [snowflake-sdk](https://www.npmjs.com/package/snowflake-sdk) and [snowflake-promise](https://www.npmjs.com/package/snowflake-promise) to stream results (to avoid loading too many objects in memory).

For each streamed row, I want to process the received information (an ETL-like job that performs write-backs). My code is quite basic and similar to this simplistic [snowflake-promise example](https://github.com/natesilva/snowflake-promise/blob/HEAD/examples/streaming.js).

My current problem is that `.on('data', ...)` is called more often than I can manage to handle. (My ETL-like job can't keep up with the received rows and my DB connection pool to perform write-backs gets exhausted).

I tried setting [rowStreamHighWaterMark](https://github.com/snowflakedb/snowflake-connector-nodejs/blob/bd6e283411697e121271e59bc66582917c20156e/lib/connection/connection_config.js#L714) to various values (1, 10 [default], 100, 1000, 2000 and 4000) in an effort to *slow down*/backpressure [stream.Readable](https://nodejs.org/api/stream.html#class-streamreadable) but, unfortunately, it didn't change anything.

What did I miss ? How can I better control when to *consume* the read data ?